[英]Counting rows in a column combination with the same condition
我想做的有点复杂,我很挣扎。 从这些数据中,我想得到 Y1、Y2 和 Y3 的计数,它们的(值 A 和值 C)都等于 1。值 A 和值 B 也都 = 1。
Name | Value A | Value B | Value C |
Y1 1 0 0
Y1 1 0 0
Y1 1 1 0
Y2 1 0 1
Y2 0 1 0
Y2 1 0 1
Y3 1 0 0
Y3 1 1 0
Y3 1 0 1
我想要的 output 是:
Name (Value A=1 and C=1) (Value A=1 and B=1)
Y1 0 1
Y2 2 0
Y3 1 1
我只能用“groupby”和“sum”将它们单独分组,并且所有值都等于 1。但我不能进行组合。
您可以创建满足条件的groupby
列并按这些列分组,并使用sum
来查找总计数:
out = (df.assign(A_C_eq_1=(df['Value_A'].eq(1) & df['Value_C'].eq(1)),
A_B_eq_1=(df['Value_A'].eq(1) & df['Value_B'].eq(1)))
.groupby('Name')[['A_C_eq_1', 'A_B_eq_1']]).sum().reset_index()
Output:
Name A_C_eq_1 A_B_eq_1
0 Y1 0 1
1 Y2 2 0
2 Y3 1 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.