当col'A'或'B'大于0或等于0时,我需要计算col'C'中的重复项吗?
A B C
1 0 500
0 1 500
0 0 500
1 1 500
1 1 300
1 0 300
0 1 300
0 0 300
我已经走了
'A'和'B'大于0
df[(df['A'] > 0) & (df['B'] > 0)].groupby('C').size()
500 1
300 1
“ A”或“ B”大于0或等于0
df[(df['A'] == 0) | (df['B'] == 0)].groupby('C').size()
500 3
300 3
如何在一个DataFrame中打印出来?
预期产量
500 1 3
300 1 3
答案 0 :(得分:0)
您最好预先计算A | B
和A & B
,除非空间不足。然后,您可以使用:
df["AND"] = df.A & df.B
df["OR"] = df.A | df.B
res = df.groupby("C")[["AND", "OR"]].agg("sum")
结果:
AND OR
C
300 1 3
500 1 3