我有一个数据显示了过去10天一批股票的收盘价。它有一个日期时间索引&股票可以通过它们的名称/代码来识别。你能帮我算出数据中每只股票的4天移动平均值吗?
我尝试过使用pd.DataFrame.rolling().mean()方法,但它只是给出了整个数据集的滚动平均值。不知道下一步该去哪里..。
sampleData = hundredDayData['2019-03-11':'2019-03-20'] sampleData['Close: 4 day mean'] = sampleData['Close'].rolling(window=4).mean() sampleData.head(24)

发布于 2019-03-24 19:54:19
df = pd.DataFrame({'code': ['a']*10+['b']*10, 'Close': [1]*20})
df.groupby('code')['Close'].rolling(window=4).mean().reset_index()code计算组的滚动均值与组内滚动均值注意:如果您的code's都是乱七八糟的(如下所示),那么您应该使用
df = pd.DataFrame({'code': ['a']*10+['b']*10+['a']*10, 'Close': [1]*30})
rolling = df.groupby('code')['Close'].rolling(window=4).mean().reset_index().set_index('level_1').rename(
columns={'Close':'rolling'})[['rolling']]
df.merge(rolling, left_index=True, right_index=True)在组级别上计算滚动均值,但使用索引将其合并回主dataframe作为新列。
https://stackoverflow.com/questions/55327858
复制相似问题