將現有列作為移動平均值復制到數據框
我想我想多了——我正在嘗試復制現有的 pandas 數據框列和值并進行滾動平均——我不想覆蓋原始數據。我正在遍歷列,獲取列和值,將滾動的 7 天 ma 作為新列,后綴_ma作為原始副本的副本。我想將現有數據與 7 天 MA 進行比較,并查看數據來自 7 天 MA 的標準偏差 - 我可以弄清楚 - 我只是想將 MA 數據保存為新數據框。我有for column in original_data[ma_columns]: ma_df = pd.DataFrame(original_data[ma_columns].rolling(window=7).mean(), columns = str(column)+'_ma')并得到錯誤:Index(...) must be called with a collection of some kind, 'Carrier_AcctPswd_ma' was passed但是如果我迭代for column in original_data[ma_columns]: print('Colunm Name : ', str(column)+'_ma') print('Contents : ', original_data[ma_columns].rolling(window=7).mean())我得到了我需要的數據:我的問題只是將其保存為一個新的數據框,我可以將其連接到舊的,然后進行分析。編輯我現在已經能夠制作一堆數據框,但我想將它們連接在一起,這就是問題所在:for column in original_data[ma_columns]: MA_data = pd.DataFrame(original_data[column].rolling(window=7).mean()) for i in MA_data: new = pd.concat(i) print(i)<ipython-input-75-7c5e5fa775b3> in <module> 17 # print(type(MA_data)) 18 for i in MA_data:---> 19 new = pd.concat(i) 20 print(i) 21 ~\Anaconda3\lib\site-packages\pandas\core\reshape\concat.py in concat(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy) 279 verify_integrity=verify_integrity, 280 copy=copy,--> 281 sort=sort, 282 ) 283 ~\Anaconda3\lib\site-packages\pandas\core\reshape\concat.py in __init__(self, objs, axis, join, keys, levels, names, ignore_index, verify_integrity, copy, sort) 307 "first argument must be an iterable of pandas " 308 "objects, you passed an object of type "--> 309 '"{name}"'.format(name=type(objs).__name__) 310 ) 311 TypeError: first argument must be an iterable of pandas objects, you passed an object of type "str"
查看完整描述