如何在pandas数据帧中使用索引?

时间:2014-07-11 12:03:09

标签: python pandas indexing dataframe

我使用数据框中的三列进行索引:

df = df.set_index(['col1','col2','col3'])

然后我尝试获取与特定索引对应的行。我尝试了很多不同的方法:

x = df.loc[(123,456,789)]

x = df.ix[(123,456,789)]

x = df.loc[123,456,789]

x = df.ix[123,456,789]

这些选项都不起作用。我得到的错误消息是:

raise e1
KeyError: 'MultiIndex lexsort depth 0, key was length 3'

我检查了索引的使用值是否存在:

inds = []
for ind in df.index:
    inds.append(ind)

if (123,456,789) in inds:
    print 'in'
else:
    print 'out'

结果我得到in(因此,这个使用的索引值存在)。我做错了什么?

1 个答案:

答案 0 :(得分:2)

对df进行排序后,所有loc / ix方法都应该有效。

df = df.set_index(['col1','col2','col3'])
df.sort(inplace=True)