首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何绘制一个事件在时间序列中的频率?

如何绘制一个事件在时间序列中的频率?
EN

Stack Overflow用户
提问于 2018-12-27 21:14:06
回答 1查看 2.1K关注 0票数 1

我有一个包含日期和质量虚拟对象(0或1)的数据框:

代码语言:javascript
运行
复制
      unixTimestamp         date     quality
 0       1370131200   06 2, 2013           1
 1       1290643200  11 25, 2010           1
 2       1283990400   09 9, 2010           1
 3       1290556800  11 24, 2010           1
 4       1317254400  09 29, 2011           1
 5       1388707200   01 3, 2014           1
 6       1398556800  04 27, 2014           1
 7       1399161600   05 4, 2014           0
 8       1405036800  07 11, 2014           1
 9       1390176000  01 20, 2014           1
 10      1397606400  04 16, 2014           1

我想做的是:绘制一段时间内quality中出现yes (1)的频率。

我尝试过的是:像这样绘制一个直方图:

代码语言:javascript
运行
复制
plt.hist(x=df.loc[df['quality'] == 1].unixTimestamp, bins=78)
plt.show()

我选择78是因为quality等于1的最晚日期是1405123200,最早日期是1203379200。这分别转换为2014年7月12日和2008年2月19日。两者之间的差异是78个月。由此产生的输出相当混乱:

有人能告诉我如何在散点图上绘制这种趋势吗?我只使用unixTimestamp。对于处理时间序列数据的更好方法的建议非常受欢迎。

此外,这是在170行df上运行的。实际数据大约有10M行。还能有人建议表示数据的最佳方式吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-27 21:33:47

您似乎希望在每个周期内(日、月等)按日期和行数对观察结果进行分组。它们的质量等于1。

这项工作是为pandas中的.groupby方法而设计的。在进行分组之前,让我们确保python也能识别日期。

代码语言:javascript
运行
复制
import pandas as pd

df['alt_date'] = pd.to_datetime(df['unixTimestamp'], unit='s')
daily_quality = df.groupby('alt_date')['quality'].sum()

现在,您可以使用pd.DataFrame.plot()绘制结果,它使用matplotlib轻松地从pandas数据帧绘制图形:

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt

daily_quality.plot(kind='bar')
plt.show()

如果您希望按月对日期进行分组,则可以使用pd.Grouper(),它的工作原理如下:

代码语言:javascript
运行
复制
monthly_quality = df.groupby(pd.Grouper(key='alt_date', freq='M'))['quality']
                    .sum()
                    .fillna(0)   # in case you have missing months

monthly_quality.plot(kind='bar')
plt.show()
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53945708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档