長い時間バグの原因がわからずハマって相当イライラさせられたのでメモ。これのおかげでixとilocの違いがわかった気がする。 こんなDataFrameを用意する。インデクス名が行番号と一致していない。けれどint型(ここがポイント)。DataFrameから部分的にDataFrameを取り出した場合に起こりうる状況である。 >>> d = pd.DataFrame([[1,2,3],[4,5,6], [7,8,9]], columns=['A','B','C'], index=[3,4,5]) >>> d A B C 3 1 2 3 4 4 5 6 5 7 8 9 さて、最初の2行を取り出したいなぁと思ってixを使って行指定をしてみる。 >>> d.ix[ [0,1] ] A B C 0 NaN NaN NaN 1 NaN NaN NaN >>> d.ix[ [3] ] A B C 3 1 2