【发布时间】:2020-06-23 07:02:09
【问题描述】:
我很难用语言表达,但我正在尝试“计算”一组两列的计数高于 2 的次数。
我有一个带有 2 个“键”的 DataFrame:
#The 'data' isn't important here, but it exists
df = pd.DataFrame({'key1' : [1,5,1,2,6,3,3,3,4,4,4,7],
'key2' : [1,1,1,2,2,3,3,3,4,4,4,4],
'data' : [0,0,0,0,0,0,0,0,0,0,0,0]})
我按 key1 和 key2 分组并计算它们相同的次数:
new_df = df.groupby(['key1','key2']).agg(['count'])
print(new_df)
哪些输出:
data
count
key1 key2
1 1 2
2 2 1
3 3 3
4 4 3
5 1 1
6 2 1
7 4 1
我需要能够计算 key1 和 key2 组出现超过 2 次的次数。 IE。 我想计算 'data count' 超过 2 的次数(在本例中是两次)
类似:
len(new_df.loc[new_df['data'] > 2])
但这不起作用并给我错误:
NotImplementedError: Indexing a MultiIndex with a DataFrame key is not implemented
我正在寻找一种尽可能高效的解决方案,因为我原来的 df 可能非常大。 谢谢!
【问题讨论】:
标签: python pandas dataframe count aggregate