[英]Converting all columns of the table into the moving averages along rows in pandas dataframe
[英]Copying existing columns as moving averages to a dataframe
我想我想多了 - 我試圖復制現有的熊貓數據框列和值並制作滾動平均值 - 我不想覆蓋原始數據。 我正在迭代列,獲取列和值,將滾動 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"
您應該遍歷列名並將生成的 Pandas 系列分配為新命名的列,例如:
import pandas as pd
original_data = pd.DataFrame({'A': range(100), 'B': range(100, 200)})
ma_columns = ['A', 'B']
for column in ma_columns:
new_column = column + '_ma'
original_data[new_column] = pd.DataFrame(original_data[column].rolling(window=7).mean())
print(original_data)
輸出數據幀:
A B A_ma B_ma
0 0 100 NaN NaN
1 1 101 NaN NaN
2 2 102 NaN NaN
3 3 103 NaN NaN
4 4 104 NaN NaN
.. .. ... ... ...
95 95 195 92.0 192.0
96 96 196 93.0 193.0
97 97 197 94.0 194.0
98 98 198 95.0 195.0
99 99 199 96.0 196.0
[100 rows x 4 columns]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.