【问题标题】:Python count transform and aggregate dates to month columnsPython 计数转换并将日期聚合到月份列
【发布时间】:2019-02-15 05:57:42
【问题描述】:

我有一个数据集,我试图在其中分解并按月计算出现次数。我还需要转换最终结果以添加每个月/发生的列

Report_ID    Report_name    timestamp    
1            Profit         8/1/2018 06:10:40
2            Revenue        8/5/2018 09:25:45
1            Profit         8/29/2018 10:11:30
2            Revenue        9/1/2018  09:45:22

输出:

Report_ID   8/2018    9/2018
1           2         0 
2           1         1

【问题讨论】:

  • 您的数据是pandas 数据框还是其他格式?
  • 它会从一个 .xlsx 文件进入,然后通过 pd.read_excel() 读入 python

标签: python pandas count pandas-groupby


【解决方案1】:

pd.crosstab 与使用strftime 的dt 访问器一起使用:

pd.crosstab(df.Report_ID, df['timestamp'].dt.strftime('%m/%Y'))\
  .reset_index()\
  .rename_axis([None], axis=1)

输出:

   Report_ID  08/2018  09/2018
0          1        2        0
1          2        1        1

【讨论】:

  • @Scott,这很好用!太感谢了!快速跟进,我的数据集有迄今为止(12 个月以上)的数据。我如何将交叉表数据框限制为过去 3 个月?
  • 创建一个仅包含最近三个月数据的新数据框,然后使用相同的命令。
猜你喜欢
  • 1970-01-01
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
  • 2022-01-23
  • 2017-06-02
  • 1970-01-01
相关资源
最近更新 更多