我使用数据框中的三列进行索引:
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
(因此,索引的使用值存在)。我做错了什么?
最佳答案
对 df 进行排序后,所有 loc/ix 方法都应该可以工作。
df = df.set_index(['col1','col2','col3'])
df.sort(inplace=True)
关于python - 如何在 pandas 数据框中使用索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24697258/