首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于熊猫重新采样时间的问题,并绘制

关于熊猫重新采样时间的问题,并绘制
EN

Stack Overflow用户
提问于 2019-11-14 02:08:44
回答 1查看 40关注 0票数 2

我是Python和Pandas的新手。我正在尝试生成一个条形图,以显示每天最后一个样本之间的差异。如果我的方法错了,请让我知道。

样本起始数据集

代码语言:javascript
复制
               DateTime         Data1       Data2
0   2019-11-10 21:05:12  1.000000e-08      0.000000
1   2019-11-10 21:05:26  1.000000e-08      0.000000
2   2019-11-10 21:13:28  1.000000e-08      0.000000
3   2019-11-10 21:20:17  1.000000e-08      0.000000
4   2019-11-10 21:29:50  1.000000e-08      0.000000
..                  ...           ...           ...
191 2019-11-13 10:05:31  4.918000e-05      0.000004
192 2019-11-13 10:15:32  4.918000e-05      0.000004
193 2019-11-13 10:25:33  4.918000e-05      0.000004
194 2019-11-13 10:35:34  4.918000e-05      0.000004
195 2019-11-13 10:45:35  4.918000e-05      0.000004

这给了我每一天的最后一个条目,但它在新行上有一个额外的列,具有相同的名称“DateTime”。当我绘制这个图时,x轴使用的是“DateTime”,其中仍然包含时间。我想使用只有日期的列。

代码语言:javascript
复制
res = pd.DataFrame()
res = df.resample('D', on='DateTime').last()
res.plot(kind='bar', x='DateTime')
plt.tight_layout()
plt.show()
print(res)

打印结果

代码语言:javascript
复制
                      DateTime         Data1         Data2
DateTime                                                  
2019-11-10 2019-11-10 22:00:14  1.000000e-08  0.000000e+00
2019-11-11 2019-11-11 22:31:05  8.460000e-06  1.100000e-07
2019-11-12 2019-11-12 23:13:15  3.718000e-05  3.240000e-06
2019-11-13 2019-11-13 10:25:33  4.918000e-05  4.010000e-06

这给了我与前一天相比的增量。但是它仍然有两个同名的列。当我尝试绘制它时,它使用具有“1day 00:30:51”的“DateTime”列,而我需要另一列。

代码语言:javascript
复制
res2 = pd.DataFrame()
res2 = res.diff()
res2.drop(res2.index[0], inplace=True)
res2.plot(kind='bar', x='DateTime')
plt.tight_layout()
plt.show()
print(res2)

打印结果

代码语言:javascript
复制
                  DateTime     Data1         Data2
DateTime                                          
2019-11-11 1 days 00:30:51  0.000008  1.100000e-07
2019-11-12 1 days 00:42:10  0.000029  3.130000e-06
2019-11-13 0 days 11:12:18  0.000012  7.700000e-07

谁能解释一下发生了什么,以及我如何才能得到我需要的条形图?

EN

回答 1

Stack Overflow用户

发布于 2019-11-15 02:44:47

光,谢谢你的帮助。以下是我正在使用的代码。

代码语言:javascript
复制
res = pd.DataFrame()
res = df.set_index('DateTime').resample('D').last()
res.plot(kind='bar')
plt.tight_layout()
plt.show()
print(res)

res2 = pd.DataFrame()
res2 = res.diff()
res2.drop(res2.index[0], inplace=True)
ax = res2.plot(kind='bar', rot=20)
f = lambda x: datetime.strptime(x, '%Y-%m-%d %H:%M:%S').strftime('%b %d')
ax.set_xticklabels([ f(x.get_text()) for x in ax.get_xticklabels()])
plt.tight_layout()
plt.show()
print(res2)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58843116

复制
相关文章

相似问题

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