2016-08-16 58 views
0

我有一个相当大的数据框在Python中,我试图添加移动平均值的新列。我可以将整个表格的移动平均值加起来,问题是我需要根据列b中的值做多个移动平均值。例如:Python添加移动平均数据框

Column B   Column C 
1     4 
2     5 
3     6 
1     7 
2     8 
3     9 

所以新列将有移动平均1,2,3,...

感谢您的帮助。

+0

我不太明白你的问题。您只需要一部分行的平均值,以及哪一部分基于列B.因此,例如,您希望列B中所有行的平均值为1? – Ghostkeeper

+2

我也发现你的问题令人困惑。根据您的示例数据框发布期望的输出可能会有所帮助。 –

回答

0
MA_WINDOW = 2 
data = ('C:\\Users\\Benjamin\\Desktop\\XSO.csv') 
df = pd.read_csv(data, names=['Indicie', 'Date', 'Open', 'High', 'Low','Close', 'Vol', 'MA']) 
df['MA'] = df.Close.rolling(window=MA_WINDOW).mean() 
print(df) 
+0

备注: CSV文件包含'Indicie','Date','Open','High','Low','Close','Vol'的值。第四行代码执行移动平均线的计算。 –

+2

尽管此代码可能会回答问题,但提供有关如何解决问题和/或为何解决问题的其他上下文会提高答案的长期价值。请阅读[如何回答](http://stackoverflow.com/help/how-to-answer)。 – thewaywewere