python - 用 Pandas 绘制时间序列的分箱计数

标签 python pandas

我有一个 Pandas 事件数据框,列中有时间戳作为索引和一些标量值(它的含义在这里不是那么重要)。我想绘制一个时间序列,在任何一个小时内发生了多少事件。

原始数据(比此处显示的要多得多)如下所示:

    size
timestamp       
2015-08-17 15:07:05.628000  50877
2015-08-17 15:07:05.701000  62989
2015-08-17 15:07:05.752000  33790
2015-08-17 15:07:05.802000  100314
2015-08-17 15:07:05.862000  10372

....

随后,我按照以下方式按小时对这些事件进行了分组:
counts = df.groupby( [df.index.year, df.index.month, df.index.day, df.index.hour] ).count()

即最终得到一个多级索引,有 4 个级别。

但现在我正在努力创建一个很好的图表。诚然,我的 Pandas 可视化技巧非常狡猾。我没有得到更多比:
counts.plot()

但这使得 x 轴完全不可读(元组序列)。我希望 x 轴是一个适当的时间序列,可以很好地与绘图的分辨率等缩放。我正在 IPython 中执行此操作,以防万一。 (我想这个问题可能归结为如何将 4 个索引级别再次折叠为一个时间戳)。

我很乐意阅读一些引用资料,因此请随时指出任何有用的链接以供阅读。我环顾四周,但无法立即找到有关特定主题的任何信息。

(另外,请随意提出任何替代方法来实现我想要做的事情 - 不确定多级索引是否最合适)。

谢谢!

最佳答案

我想你要找的是resample .它旨在按时间范围处理重组。尝试:

df.resample('1H').count().plot()

关于python - 用 Pandas 绘制时间序列的分箱计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32137318/

相关文章:

python - 将 pandas 日期时间索引扩展到当前日期

python - 没有设置密码。 django 保存没有表单的用户

Python:将不明确的时间转换为时间对象的有效方法?

python - 如何将已创建的json格式字符串插入Elasticsearch Bulk

python - Cumprod 在 Python 中给出 -inf

python - 某些列 pandas 上相同值的动态 bool 掩码

python - 带有 pandas 的多个堆叠条形图

python - SQLModel:禁止突变

python - 从 Cassandra Columnfamily 读取数据时出现奇怪的行为

python - Pandas:获取具有列值的行并用另一个值更新注释列