0

因此,当将 kraken.com历史数据馈送加载到 pandas 以从刻度数据(时间和销售)转换为 OHLC(开盘、高、低、收)数据时,我遇到了一个问题,我无法为“高”和“重新采样”低”,因为它们会抛出错误,但“第一”、“最后”和“总和”工作得很好,我不知道为什么或可用选项是什么,因为似乎有一个枚举选项列表(总猜测那里)。

下面的代码从ryantjo 的 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.
4

1 回答 1

1

如果要从需要使用的每个组中提取最高值max

high_df = df.resample("1H").agg({'trade_price': 'max'})

通常,该agg()函数采用一个字典,其中键是列名,值必须是 pandas 函数的名称。

于 2021-05-17T18:15:04.123 回答