对数据框熊猫中的选定数据进行分组

时间:2021-03-04 14:15:58

标签: python pandas jupyter-notebook grouping jupyter

我有一个看起来像这样的数据框:

   CARD     CALL        COD_DAY
0   5713    0.0         20200716
1   5713    1.0         20200811
2   5713    2.0         20200620
3   5713    3.0         20200619
4   5713    4.0         20200601
... ... ... ...
2135283 73306036    0.0     20200930
2135284 73306055    12.0    20200930
2135285 73306479    9.0     20200930
2135286 73306656    3.0     20200930
2135287 73306676    1.0     20200930

我只想选择 COD_DAY 最高且 CALL 大于零的 CARD。 我用 groupby 尝试了几种方法,但没有积极的结果。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

我认为您需要首先通过 boolean indexingSeries.gt 过滤正值,然后通过 DataFrameGroupBy.idxmax 获取最大 COD_DAYCARD 的行,用于索引和最后传递给DataFrame.loc

df = df.loc[df[df['CALL'].gt(0)].groupby('CARD')['COD_DAY'].idxmax()]
print (df)
             CARD  CALL   COD_DAY
1            5713   1.0  20200811
2135284  73306055  12.0  20200930
2135285  73306479   9.0  20200930
2135286  73306656   3.0  20200930
2135287  73306676   1.0  20200930

如果不是每组需要一张卡:

card = df.loc[df.loc[df['CALL'].gt(0), 'COD_DAY'].idxmax(), 'CARD']
print (card)
73306055