如何解决将现有列作为移动平均值复制到数据框
我想我对此太想了-我正在尝试复制现有的熊猫数据帧列和值并进行滚动平均-我不想覆盖原始数据。我要遍历各列,获取各列和各值,将后缀_ma
作为新列滚动7天作为新列,作为原始副本的副本。我想将现有数据与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,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"
解决方法
您应该遍历列名,并将结果的熊猫系列分配为新的命名列,例如:
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]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。