基本上,问题是“大熊猫是否具有类似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)时间内访问记录。
答案 0 :(得分:2)
这是一个非常半合半的答案,但如果有用,我会发帖。
您可以使用
将多索引应用于数据框df.set_index(['a', 'b'], inplace=True)
我不知道底层实现的时间复杂性是什么。
您可以使用ix
方法使用多索引访问数据框中的行,如下所示:
df.ix[(0, 1)]
我希望这就是你要找的东西。如果没有道歉。