python – Pandas重采样错误:仅对DatetimeIndex或PeriodIndex有效
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Pandas重采样错误:仅对DatetimeIndex或PeriodIndex有效,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1948字,纯文字阅读大概需要3分钟。
内容图文
![python – Pandas重采样错误:仅对DatetimeIndex或PeriodIndex有效](/upload/InfoBanner/zyjiaocheng/706/f8e4a7dfca2145afb3117b83bbe21c31.jpg)
在DataFrame上使用panda的重采样功能以将刻度数据转换为OHLCV时,会遇到重采样错误.
我们该如何解决错误?
data = pd.read_csv('tickdata.csv', header=None, names=['Timestamp','Price','Volume']).set_index('Timestamp')
data.head()
# Resample data into 30min bins
ticks = data.ix[:, ['Price', 'Volume']]
bars = ticks.Price.resample('30min', how='ohlc')
volumes = ticks.Volume.resample('30min', how='sum')
这给出了错误:
TypeError: Only valid with DatetimeIndex or PeriodIndex
解决方法:
将索引中的整数时间戳转换为DatetimeIndex:
data.index = pd.to_datetime(data.index, unit='s')
这将整数解释为自纪元以来的秒数.
例如,给定
data = pd.DataFrame(
{'Timestamp':[1313331280, 1313334917, 1313334917, 1313340309, 1313340309],
'Price': [10.4]*3 + [10.5]*2, 'Volume': [0.779, 0.101, 0.316, 0.150, 1.8]})
data = data.set_index(['Timestamp'])
# Price Volume
# Timestamp
# 1313331280 10.4 0.779
# 1313334917 10.4 0.101
# 1313334917 10.4 0.316
# 1313340309 10.5 0.150
# 1313340309 10.5 1.800
data.index = pd.to_datetime(data.index, unit='s')
产量
Price Volume
2011-08-14 14:14:40 10.4 0.779
2011-08-14 15:15:17 10.4 0.101
2011-08-14 15:15:17 10.4 0.316
2011-08-14 16:45:09 10.5 0.150
2011-08-14 16:45:09 10.5 1.800
然后
ticks = data.ix[:, ['Price', 'Volume']]
bars = ticks.Price.resample('30min').ohlc()
volumes = ticks.Volume.resample('30min').sum()
可以计算:
In [368]: bars
Out[368]:
open high low close
2011-08-14 14:00:00 10.4 10.4 10.4 10.4
2011-08-14 14:30:00 NaN NaN NaN NaN
2011-08-14 15:00:00 10.4 10.4 10.4 10.4
2011-08-14 15:30:00 NaN NaN NaN NaN
2011-08-14 16:00:00 NaN NaN NaN NaN
2011-08-14 16:30:00 10.5 10.5 10.5 10.5
In [369]: volumes
Out[369]:
2011-08-14 14:00:00 0.779
2011-08-14 14:30:00 NaN
2011-08-14 15:00:00 0.417
2011-08-14 15:30:00 NaN
2011-08-14 16:00:00 NaN
2011-08-14 16:30:00 1.950
Freq: 30T, Name: Volume, dtype: float64
内容总结
以上是互联网集市为您收集整理的python – Pandas重采样错误:仅对DatetimeIndex或PeriodIndex有效全部内容,希望文章能够帮你解决python – Pandas重采样错误:仅对DatetimeIndex或PeriodIndex有效所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。