使用变量访问熊猫多索引

时间:2019-01-20 15:48:10

标签: python pandas

我正在努力以编程方式访问具有多索引的Pandas DataFrame。假设我有

-s

我可以得到与c1,c2和c3的[1、1、1]组合相对应的和

curl

将按预期返回10。

但是如果我有一个变量

import pandas as pd

df = pd.DataFrame([[0, 0, 0, 1],
                  [0, 0, 1, 2], 
                  [0, 1, 0, 7],
                  [0, 1, 1, 9],
                  [1, 0, 0, 1],
                  [1, 0, 1, 0],
                  [1, 1, 0, 1],
                  [1, 1, 1, 10]], columns=['c1', 'c2', 'c3', 'value'])

sums = df.groupby(['c1', 'c2', 'c3']).value.sum()

我如何获得相同的价值?

我尝试过

sums[1, 1, 1]

给出

q = [1, 1, 1]

我还认为明星运营商可以工作:

sums[q]

但这是无效的语法。

1 个答案:

答案 0 :(得分:1)

Series.xstuple一起使用:

print (sums.xs((1,1,1)))
10

Series.loc

print (sums.loc[(1,1,1)])
#alternative
#print (sums[(1,1,1)])
10

q = [1, 1, 1]
print (sums.loc[tuple(q)])
#alternative
#print (sums[tuple(q)])
10