【问题标题】:Group selected data from dataframe pandas对数据框 pandas 中的选定数据进行分组
【发布时间】:2021-06-03 04:57:06
【问题描述】:

我有一个如下所示的数据框:

   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 尝试了几种方法,但没有积极的结果。

任何帮助都非常感谢!

【问题讨论】:

    标签: python pandas jupyter-notebook grouping jupyter


    【解决方案1】:

    我认为您需要首先通过boolean indexingSeries.gt 过滤正值,然后通过CARD 获取具有最大COD_DAY 的行,通过DataFrameGroupBy.idxmax 获取索引,最后传递给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
    

    【讨论】:

    • 行得通!非常感谢!如果我只想选择 CARD 和最高 COD_DAY,我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 2021-12-22
    相关资源
    最近更新 更多