我想详细说明如下的分组逻辑。鉴于数据帧df
:用均值和计数条件分组
df =
ID GROUP DAY GRADE TIME_1
1 AAA 1 5 20
1 AAA 1 4 19
1 AAA 1 3 21
1 BBB 2 1 10
2 BBB 2 3 13
我需要组行由ID
,GRADE
,GROUP
和DAY
,并计算平均TIME_1
,行数在一组。另外(这是我的问题),我想检查GRADE
是4还是5,那么它应该被分组为正分数,意思是TIME_1
应该按照它计算,否则 - 为负值。
结果应该是这样:
result =
GROUP DAY AVG_TIME_1_POSITIVE AVG_TIME_1_NEGATIVE QTY_POSITIVE QTY_NEGATIVE
AAA 1 19.5 21 2 1
BBB 2 0 11.5 0 2
我用这个办法,但不知道如何GRADE
指定分组条件:
result = df.groupby(['GROUP','GRADE','DAY']).agg({'TIME_1': 'mean',
'ID': 'count'}).reset_index()
没有你的数据很难回答的问题。是'print(type(mask))'''Series'? – jezrael