python - 如何在 pandas 数据框中使用索引?

标签 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(因此,索引的使用值存在)。我做错了什么?

最佳答案

对 df 进行排序后,所有 loc/ix 方法都应该可以工作。

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

关于python - 如何在 pandas 数据框中使用索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24697258/

相关文章:

Python:在一个完整的项目中组织用户定义的异常

python - except 在 Python 中到底做了什么?

python-3.x - 在 python3 上的 DataFrame 中标记假期

python - 在 read_csv 之后选择 pandas 数据框中的列时出现关键错误

postgresql - postgres 部分索引

python - 如何在 Python 中对时域信号应用滤波器

python - 从 URL 检索参数

pandas - 如何从数据集中搜索输入错误(日期)并根据条件替换它们?

mysql - 提高 mySQL 查询的速度

phpbb3 对新消息的缓慢索引