【问题标题】:How to group data by rows in pandas如何在熊猫中按行分组数据
【发布时间】:2021-03-28 19:55:32
【问题描述】:

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

        Fault ID    REPORT_DATE INITIAL_MFL
0       ID000001    2014-01-01  CE
1       ID000002    2014-01-01  CA
2       ID000003    2014-01-01  OTHER
3       ID000004    2014-01-01  OK
4       ID000005    2014-01-01  LN
...       ...        ...    ...
275586  ID275581    2017-03-31  CE
275587  ID275586    2017-03-31  CE
275588  ID275589    2017-03-31  CA
275589  ID275590    2017-03-31  CA
275590  ID275591    2017-03-31  OK

我想按日期对它们进行分组。 例如

REPORT_DATE INITIAL_MFL                 CE CA OK LN OTHERS
2014-01-01  [CE, CA, OTHERS, OK, ...]    2  1  5  3      6
2014-01-02  [CE, CA, OTHERS, OK, ...]    2  1  5  3      6

一天之内可能会发生许多故障。所以,我需要将它们分组并在其基础上创建一个新列。我不知道该怎么做。

如果您能提供帮助,我将不胜感激。

谢谢。

【问题讨论】:

    标签: python pandas dataframe data-analysis data-manipulation


    【解决方案1】:

    假设你有这个数据框:

       Fault ID REPORT_DATE INITIAL_MFL
    0  ID000001  2014-01-01          CE
    1  ID000002  2014-01-01          CA
    2  ID000003  2014-01-01       OTHER
    3  ID000004  2014-01-01          OK
    4  ID000005  2014-01-01          LN
    5  ID275581  2017-03-31          CE
    6  ID275586  2017-03-31          CE
    7  ID275589  2017-03-31          CA
    8  ID275590  2017-03-31          CA
    9  ID275591  2017-03-31          OK
    

    那么你可以这样做:

    from collections import Counter
    
    g = df.groupby("REPORT_DATE")["INITIAL_MFL"].agg(list)
    c = pd.DataFrame(g.apply(Counter).tolist(), index=g.index)
    df_out = g.to_frame().join(c)
    print(df_out)
    

    打印:

                             INITIAL_MFL  CE  CA  OTHER  OK   LN
    REPORT_DATE                                                 
    2014-01-01   [CE, CA, OTHER, OK, LN]   1   1    1.0   1  1.0
    2017-03-31      [CE, CE, CA, CA, OK]   2   2    NaN   1  NaN
    

    【讨论】:

    • 非常感谢。效果很好。
    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 2019-10-14
    • 2017-10-17
    • 2021-08-11
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    相关资源
    最近更新 更多