<Python, pandas> パンダ、列の選択でちとはまったこと。

pandasで列columnでちとはまったこと。

df[[n]]と、df.iloc[:,n]では、両方とも、columnnが選択できる。が、
df[[n]]はデータフレームDataFrame
df.iloc[:,n]はシリーズSeries
を返す。

なので、df[[n]].valuesを見ると違いがわかる。

In [24]: df
Out[24]: 
          0         1         2         3         4
0 -0.116274  0.823030 -1.093909  1.047900 -0.172903
1  0.651332  0.216891 -0.207168  0.443501 -0.483327
2  3.261291 -1.642786 -0.913060 -0.681077 -0.241909
3  1.358165  0.568575  0.831260 -0.069240 -0.937170
4  0.979177  1.327348  0.295521 -0.195704 -0.538233

In [25]: df[[0]].values
Out[25]: 
array([[-0.11627409],
       [ 0.65133205],
       [ 3.2612912 ],
       [ 1.35816484],
       [ 0.97917688]])

In [26]: df.iloc[:,0].values
Out[26]: array([-0.11627409,  0.65133205,  3.2612912 ,  1.35816484,  0.97917688])