DataFrame - Python 中的 groupby 和转换

DataFrame - groupby and transform in Python

我从

获得了“在 Python 中为量化交易构建一套全面的技术指标”代码示例

https://towardsdatascience.com/building-a-comprehensive-set-of-technical-indicators-in-python-for-quantitative-trading-8d98751b5fb

但是,groupby 方法(对于简单移动平均线-SMA)是根据它 'symbol'(AAPL 或 NFLX)解决的:

all_data['SMA_5'] = all_data.groupby('symbol')['Close'].transform(lambda x: x.rolling(window = 5).mean())

all_data['SMA_15'] = all_data.groupby('symbol')['Close'].transform(lambda x: x.rolling(window = 15).mean())

如果我有自己的 DataFrame 而没有符号列(只有开盘价、收盘价、最高价、最低价和交易量),有没有办法跳过它并执行此方法(连同提到的转换方法调用)? 以这种方式调用方法似乎需要它的符号列。

谢谢!

我已经尝试删除 ('symbol') 要求,但是该方法似乎没有响应此类调用。 我想接收一个 DataFrame 的 SMA,它使用 groupby 仅具有开盘价、收盘价、高价、低价和成交量列。

试试这个 5 天移动平均线

all_data['SMA_5'] = all_data['column_name'].ewm(span=5).mean()

如果您不需要按“符号”分组,只想对整个数据应用转换,只需删除整个 groupby 调用:

all_data['SMA_5'] = all_data['Close'].transform(lambda x: x.rolling(window = 5).mean())