一种按位置选择列的直接方法

时间:2016-08-01 14:28:23

标签: python pandas dataframe

我试图澄清如何管理pandas方法来调用Dataframe中的列和行。一个例子将澄清我的问题

dic = {'a': [1, 5, 2, 7], 'b': [6, 8, 4, 2], 'c': [5, 3, 2, 7]}
df = pd.DataFrame(dic, index = ['e', 'f', 'g', 'h'] )

大于

df = 
   a  b  c
e  1  6  5
f  5  8  3
g  2  4  2
h  7  2  7

现在,如果我想选择列'a',我只需要输入

df['a']

如果我想选择行'e',我必须使用“.loc”方法

df.loc['e']

如果我不知道行的名称,只是它的位置(在这种情况下为0),而不是我可以使用“iloc”方法

df.iloc[0]

看起来缺少的是一种按位置而不是按名称调用列的方法,这是“等效于行的'iloc'方法的列”。我能找到的唯一方法是

df[df.keys()[0]]

有类似

的东西
df.ilocColumn[0]

1 个答案:

答案 0 :(得分:2)

您可以添加:,因为第一个参数是所选索引的位置,而第二个位置是函数iloc中的列:

:表示DataFrame中的所有索引:

print (df.iloc[:,0])
e    1
f    5
g    2
h    7
Name: a, dtype: int64

如果需要选择第一个索引和第一个列值:

print (df.iloc[0,0])
1

如果需要按名称和按位置选择索引,ix的解决方案很有效:

print (df.ix['e',0])
1