Pandas pands按聚合失败筛选df
我的df: 我想过滤那些当它们的总Dif(因此我做了一个groupby)大于3600(1小时,因为Dif是秒)时的盘子,保留它们。否则就丢弃它们 我试过(在这里发了一篇帖子之后): 但我仍然得到大约60个盘子,总数不到3600个:Pandas pands按聚合失败筛选df,pandas,pandas-groupby,aggregate,Pandas,Pandas Groupby,Aggregate,我的df: 我想过滤那些当它们的总Dif(因此我做了一个groupby)大于3600(1小时,因为Dif是秒)时的盘子,保留它们。否则就丢弃它们 我试过(在这里发了一篇帖子之后): 但我仍然得到大约60个盘子,总数不到3600个: df.groupby('Plate').filter(lambda x: x['Dif'].sum() > 3600) 这件事我已经谈了好几个小时了,我解决不了。任何帮助都将不胜感激。请重新分配 df.groupby('Plate').agg({'Dif':'
df.groupby('Plate').filter(lambda x: x['Dif'].sum() > 3600)
这件事我已经谈了好几个小时了,我解决不了。任何帮助都将不胜感激。请重新分配
df.groupby('Plate').agg({'Dif':'sum'}).reset_index().nsmallest(60, 'Dif')
Plate Dif
952 655NZ035M 268.0
1122 949CH002C 814.0
446 0440220 1318.0
1124 949CH005C 1334.0
1042 698NZ011M 1434.0
1038 697NZ011M 1474.0
1 0010193 1509.0
282 0270302 1513.0
909 614NZ021M 1554.0
156 0140236 1570.0
425 0430092 1577.0
603 0620123 1586.0
510 0530029 1624.0
213 0180682 1651.0
736 0800126 1670.0
然后
哦,是的,真是个错误!非常感谢。
df.groupby('Plate').agg({'Dif':'sum'}).reset_index().nsmallest(60, 'Dif')
Plate Dif
952 655NZ035M 268.0
1122 949CH002C 814.0
446 0440220 1318.0
1124 949CH005C 1334.0
1042 698NZ011M 1434.0
1038 697NZ011M 1474.0
1 0010193 1509.0
282 0270302 1513.0
909 614NZ021M 1554.0
156 0140236 1570.0
425 0430092 1577.0
603 0620123 1586.0
510 0530029 1624.0
213 0180682 1651.0
736 0800126 1670.0
df = df.groupby('Plate').filter(lambda x: x['Dif'].sum() > 3600)
df.groupby('Plate').agg({'Dif':'sum'}).reset_index().nsmallest(60, 'Dif')