如何解决获取“SeriesGroupBy”对象在加密数据的熊猫重采样中没有“高”属性
因此,当将 kraken.com historical datafeed 加载到 Pandas 以将刻度数据(时间和销售额)转换为 OHLC(开盘价、高价、低价、收盘价)数据时,我遇到了无法重新采样的问题对于“高”和“低”,因为它们会抛出错误,但是“第一”、“最后”和“总和”工作得很好,我不知道为什么或可用选项是什么,因为似乎有一个枚举列表选项(完全猜测)。
下面的代码从 ryantjo's Resampling Market Tick Data 中汲取了大量灵感(盲目地正确处理)。
high_df = df.resample("1H").agg({'trade_price': 'high'})
AttributeError: 'SeriesGroupBy' object has no attribute 'high'
完整代码:
import pandas as pd
df = pd.read_csv('C:/source/tradingdata/Kraken/STORJETH.csv',names=[
'ms','trade_price','volume'],parse_dates=True)
df['td'] = pd.to_timedelta(df['ms'],'ms')
df = df.set_index(df['td'])
df.head()
open_df = df.resample("1H").agg({'trade_price': 'first'})
low_df = df.resample("1H").agg({'trade_price': 'high'})
low_df = df.resample("1H").agg({'trade_price': 'low'})
close_df = df.resample("1H").agg({'trade_price': 'last'})
volume_df = df.resample("1H").agg({'volume': 'sum'})
... More code that hasn't even been tested yet.
解决方法
如果要从每个组中提取最高值,则需要使用 max
high_df = df.resample("1H").agg({'trade_price': 'max'})
通常,agg()
函数采用字典,其中键是列名,值必须是 Pandas 函数的名称。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。