【发布时间】:2020-12-12 15:47:23
【问题描述】:
我想我想多了 - 我正在尝试复制现有的 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"
【问题讨论】:
-
你试过使用熊猫内置的滚动功能吗?这是一个例子datacamp.com/community/tutorials/moving-averages-in-pandas
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图)放在有问题的(不是评论)中。还有其他有用的信息。
-
columns=可能需要列列表 - 即使您只有一列。 -
再次:显示完整的错误消息(从单词
Traceback开始)。还有其他有用的信息 - 即。哪一行有问题。
标签: python pandas loops analysis