Pandas - 按字段分组并使用显示该字段数量的列

Posted

技术标签:

【中文标题】Pandas - 按字段分组并使用显示该字段数量的列【英文标题】:Pandas - Group by field and use column showing amounts of that field 【发布时间】:2020-12-14 15:54:30 【问题描述】:

我不知道如何正确描述这种情况,我有这个数据框,我需要按日期对其进行分组,并让“状态”列按日期显示数量。我怎样才能正确地做到这一点?

Date        Time        N   Status          Kind
23/8/2020   00:00:00    aaa Completed       az
23/8/2020   00:00:01    bbb with warnings   az
23/8/2020   00:00:02    ccc aborted         ad
23/8/2020   00:00:03    rrr with warnings   az
24/8/2020   00:00:04    aze Completed       ad
24/8/2020   00:00:05    ggg Completed       ad
24/8/2020   00:00:06    ddd with warnings   az
21/8/2020   00:00:07    ww  Completed       az
21/8/2020   00:00:08    xxx aborted         az
21/8/2020   00:00:09    gge Completed       az

我需要它显示如下:

Date        Completed   with warnings   aborted
21/8/2020   2           0               1
23/8/2020   1           2               1
24/8/2020   2           1               0

我尝试过以不同方式进行分组,也包括“.to_frame”。我不知道如何使用“.agg()”

【问题讨论】:

pd.corsstab(df.Date, df.Status) 到底是什么问题? 我不确定如何使用“.agg()” 那么您可能需要 Pandas 文档,而不是 SO,对吧?请参阅How to Ask、help center。 pandas how to use agg 【参考方案1】:

非常感谢@BEN_YO,我解决了这个问题,真的没有必要 .agg()

pd.corsstab (df.Date, df.Status) - BEN_YO

解决方案

df = pd.crosstab(df.Date, df.Status)
df = df.reset_index()
print(df)

【讨论】:

以上是关于Pandas - 按字段分组并使用显示该字段数量的列的主要内容,如果未能解决你的问题,请参考以下文章

按4个不同级别和总数字字段分组

(MySQL)按字段分组并选择 COUNT(field) 和分组行数

使用多个选项按字段对 Drupal 视图进行分组 - 仅显示一个字段

sql数据库怎么实现分组并取每组的前1条语句,按日期排序?

s-s-rS 按多个字段和分组分组

按 4 个不同级别和总数字字段分组