获取 'SeriesGroupBy' 对象在 pandas 加密数据重采样中没有属性 'high'
getting 'SeriesGroupBy' object has no attribute 'high' in pandas resample of crypto data
因此,当将 kraken.com historical datafeed 加载到 pandas 以将报价数据(时间和销售)转换为 OHLC(开盘价、最高价、最低价、收盘价)数据时,我 运行 遇到一个问题,我无法为 'high' 和 'low' 重新采样,因为它们会抛出错误,但是 'first'、'last' 和 'sum' 可以正常工作好吧,我不知道为什么或可用的选项是什么,因为似乎有一个枚举的选项列表(总的猜测)。
下面的代码从 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 函数的名称。
因此,当将 kraken.com historical datafeed 加载到 pandas 以将报价数据(时间和销售)转换为 OHLC(开盘价、最高价、最低价、收盘价)数据时,我 运行 遇到一个问题,我无法为 'high' 和 'low' 重新采样,因为它们会抛出错误,但是 'first'、'last' 和 'sum' 可以正常工作好吧,我不知道为什么或可用的选项是什么,因为似乎有一个枚举的选项列表(总的猜测)。
下面的代码从 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 函数的名称。