如何创建一个显示唯一值计数但以增量/顺序方式显示的df? [复制]

Posted

技术标签:

【中文标题】如何创建一个显示唯一值计数但以增量/顺序方式显示的df? [复制]【英文标题】:How to create a df showing count of unique values but in an incremental/sequential manner? [duplicate] 【发布时间】:2020-10-13 20:09:40 【问题描述】:

我的数据框如下所示:

ID          Date
1001        2020-01-01   
1001        2020-02-01
1002        2020-01-01
1002        2020-02-01
1002        2020-03-01

我想创建一个具有唯一 ID 值的 df,以及该 ID 与日期一起重复的次数。我尝试了以下代码:

df.groupby(['ID','Date'])['ID'].count()

我得到的输出是:

ID        Date
1001      2020-01-01       1
          2020-02-01       1
1002      2020-01-01       1
          2020-02-01       1
          2020-03-01       1

但我要创建的是这个,即列名“计数”,应该是 df 格式:

ID        Date             Count
1001      2020-01-01       1
          2020-02-01       2
1002      2020-01-01       1
          2020-02-01       2
          2020-03-01       3

输出非常接近,只需要稍作调整。有人可以帮我解决这个问题吗?

【问题讨论】:

df['count'] = df.groupby(['ID']).cumcount() + 1 IIUC 【参考方案1】:

试试这个:

df['count'] = df.groupby(by=['ID']).cumcount()+1
print(df)

     ID        Date  count
0  1001  2020-01-01      1
1  1001  2020-02-01      2
2  1002  2020-01-01      1
3  1002  2020-02-01      2
4  1002  2020-03-01      3

【讨论】:

以上是关于如何创建一个显示唯一值计数但以增量/顺序方式显示的df? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

从 Pandas 数据框中另一个系列分段的日期累积计数创建增量计数

按同一列分组,但以两种不同的方式聚合

熊猫计算列中的元素并以重复的方式显示

如何以最佳方式按两列进行 GROUP BY 和计数?

如何更改 MySQL 中的自动增量计数器?

如何创建基于百分位的指标图表?