熊猫,快速访问(多)列值

时间:2014-04-11 15:26:15

标签: python sql pandas

基本上,问题是“大熊猫是否具有类似SQL的多索引?”

详细说明, 我想添加我的DataFrame的(多)索引,以便在O(1)时间内访问具有给定列值的记录。

以下脚本执行我需要的操作,但不在O(1)时间内执行:

import pandas as pd
import numpy as np
df = pd.DataFrame([[0, 1, 0],[0, 0, 0]], columns=['a', 'b', 'c'])
df[np.logical_and(df['a'] == 0, df['b'] == 1)]

我想知道是否有办法构建(多)数据帧索引(假设在O(N)时间内),然后在O(1)时间内访问记录。

1 个答案:

答案 0 :(得分:2)

这是一个非常半合半的答案,但如果有用,我会发帖。

您可以使用

将多索引应用于数据框
df.set_index(['a', 'b'], inplace=True)

我不知道底层实现的时间复杂性是什么。

您可以使用ix方法使用多索引访问数据框中的行,如下所示:

df.ix[(0, 1)]

我希望这就是你要找的东西。如果没有道歉。