groupby之后的条件和基于另一列中的值

时间:2019-07-12 15:57:11

标签: pandas pandas-groupby

我的数据框如下。

Cycle	Type	Count	Value
1	1	5	0.014
1	1	40	-0.219
1	1	5	0.001
1	1	100	-0.382
1	1	5	0.001
1	1	25	-0.064
2	1	5	0.003
2	1	110	-0.523
2	1	10	0.011
2	1	5	-0.009
2	1	5	0.012
2	1	156	-0.612
3	1	5	0.002
3	1	45	-0.167
3	1	5	0.003
3	1	10	-0.052
3	1	5	0.001
3	1	80	-0.194

我要对分组之后所有正负“值”的“计数”求和 答案会像 1 1 15(值为正时的计数总和), 1 1 165(值为负时的计数总和), 2 1 20 2 1 171, 3 1 15 3 1 135 我认为这会(grouped.set_index('Count').groupby(['Cycle','Type'])['Value'].......有效,但是我无法弄清楚如何为sum()指定正负值

1 个答案:

答案 0 :(得分:1)

如果我理解正确,则可以尝试以下代码,

df= pd.DataFrame (data)
df_negative=df[df['Value'] < 0]
df_positive=df[df['Value'] > 0]
df_negative = df_negative.groupby(['Cycle','Type']).Count.sum().reset_index()
df_positive = df_positive.groupby(['Cycle','Type']).Count.sum().reset_index()
df_combine = pd.concat([df_positive,df_negative]).sort_values('Cycle')
df_combine