【发布时间】:2020-02-07 18:38:53
【问题描述】:
我正在尝试使用我的df 中的 2 列按月计算 2 个事件的频率。到目前为止,我所做的是按唯一时间计算所有事件,这不够有效,因为结果太多。我希望之后创建一个带有结果的图表。
我尝试通过 SO 问题的答案来调整我的代码:
- [How to groupby time series by 10 minutes using pandas?
- [Counting frequency of occurrence by month-year using python panda
- [Pandas Groupby using time frequency
但当我在groupby 命令中输入freq='day' 时,该命令似乎无法正常工作。
我的代码是:
print(df.groupby(['Priority', 'Create Time']).Priority.count())
最初产生类似 170000 的结果的结构如下:
Priority Create Time
1.0 2011-01-01 00:00:00 1
2011-01-01 00:01:11 1
2011-01-01 00:02:10 1
...
2.0 2011-01-01 00:01:25 1
2011-01-01 00:01:35 1
...
但现在由于某种原因(我使用的是 Jupyter Notebook)它只产生:
Priority Create Time
1.0 2011-01-01 00:00:00 1
2011-01-01 00:01:11 1
2011-01-01 00:02:10 1
2.0 2011-01-01 00:01:25 1
2011-01-01 00:01:35 1
Name: Priority, dtype: int64
不知道为什么输出变成了只有 5 个结果(也许我在不知不觉中改变了一些东西)。
我希望结果采用以下格式:
Priority month Count
1.0 2011-01 a
2011-02 b
2011-03 c
...
2.0 2011-01 x
2011-02 y
2011-03 z
...
显示如何正确更改其他值的频率的要点,例如hour/day/month/year。有了答案,请您解释一下您的代码中发生了什么,因为我是新手,正在学习熊猫并希望了解该过程。谢谢。
【问题讨论】:
标签: python pandas pandas-groupby