【问题标题】:How to create column that counts number of rows per each date of ID如何创建计算每个 ID 日期的行数的列
【发布时间】:2022-01-20 15:49:02
【问题描述】:

我的 DataFrame 看起来像这样:

   id   datetime
0   a   2022-01-18
1   a   2022-01-19
2   a   2022-01-20
3   b   2022-01-20
4   b   2022-01-20
5   c   2022-01-18

我想要一个看起来像这样的 DataFrame:

    id  2022-01-20  2022-01-19   2022-01-18
0   a   1           1            1
1   b   2           0            0
2   c   0           0            1

我试过了

    df.groupby(['id', 'datetime']).size()
    
id  datetime
a   2022-01-18   1
    2022-01-19   1
    2022-01-20   1
b   2022-01-20   2
c   2022-01-18   1

它返回一个序列,而不是一个接近但仍然不是我想要的数据帧。请帮忙

【问题讨论】:

  • 这能回答你的问题吗? How can I pivot a dataframe?
  • 非常接近。我怎样才能得到 pd.pivot(data=df, index='foo', columns='bar', values= count(bar))

标签: python pandas dataframe


【解决方案1】:

你可以用下面的代码做到这一点

df = df.groupby(['id','date']).size().unstack(fill_value=0).reset_index()
df.columns.name = None

结果

df.head()

  id  2022-01-18  2022-01-19  2022-01-20
0  a           1           1           1
1  b           0           0           2
2  c           1           0           0

【讨论】:

  • 你拯救了我的一天,谢谢!
猜你喜欢
  • 2022-10-21
  • 2021-07-31
  • 2010-11-26
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-27
  • 1970-01-01
相关资源
最近更新 更多