我有一个简单的pandas数据帧,可以在不同的时间进行测量:
volume
t
2013-10-13 02:45:00 17
2013-10-13 05:40:00 38
2013-10-13 09:30:00 29
2013-10-13 11:40:00 25
2013-10-13 12:50:00 11
2013-10-13 15:00:00 17
2013-10-13 17:10:00 15
2013-10-13 18:20:00 12
2013-10-13 20:30:00 20
2013-10-14 03:45:00 9
2013-10-14 06:40:00 30
2013-10-14 09:40:00 43
2013-10-14 11:05:00 10
我正在做一些基本的重新采样和绘图,例如每日总量,它工作正常:
df.resample('D',how='sum').head()
volume
t
2013-10-13 184
2013-10-14 209
2013-10-15 197
2013-10-16 309
2013-10-17 317
但由于某些原因,当我尝试每天输入总条目数时,它会返回一个多索引系列而不是数据帧:
df.resample('D',how='count').head()
2013-10-13 volume 9
2013-10-14 volume 9
2013-10-15 volume 7
2013-10-16 volume 9
2013-10-17 volume 10
我可以修复数据,因此可以通过简单的非堆栈调用轻松绘制,即df.resample(‘D’,how =’count’).unstack(),但为什么调用resample with how =’count’会有不同的行为而不是如何=’总和’?
解决方法:
看来重新取样和计数导致了一些奇怪的行为,就结果数据帧的结构而言(嗯,至少高达0.13.1).请看这里略有不同但相关的背景:Count and Resampling with a mutli-ndex
您可以使用相同的策略
这里:
>>> df
volume
date
2013-10-13 02:45:00 17
2013-10-13 05:40:00 38
2013-10-13 09:30:00 29
2013-10-13 11:40:00 25
2013-10-13 12:50:00 11
2013-10-13 15:00:00 17
2013-10-13 17:10:00 15
2013-10-13 18:20:00 12
2013-10-13 20:30:00 20
2013-10-14 03:45:00 9
2013-10-14 06:40:00 30
2013-10-14 09:40:00 43
2013-10-14 11:05:00 10
所以这是你的问题:
>>> df.resample('D',how='count')
2013-10-13 volume 9
2013-10-14 volume 4
您可以通过在resample调用中使用dict指定count应用于volume列来解决此问题:
>>> df.resample('D',how={'volume':'count'})
volume
date
2013-10-13 9
2013-10-14 4
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。