我想通过for循环根据输入数字连接数据框
我的代码:
combine_df = pd.DataFrame()
df1= pd.DataFrame()
df2= pd.DataFrame()
df3= pd.DataFrame()
df4= pd.DataFrame()
df5= pd.DataFrame()
number = 5
for i in range(1,number):
master_df = pd.concat([master_df, "df"+str(i)],ignore_index=True,sort=False)
以下是错误
TypeError: cannot concatenate object of type "<class 'str'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid
我要执行此操作的原因是我想基于输入数n创建n个数据帧并连接n个数据帧
例如如果数字= 10,我可以合并10个数据帧
答案 0 :(得分:2)
您可以像这样进行合并,但是我不确定您是否会获得预期的输出。您还必须使用eval。这是我正在执行的一些示例数据的示例:
d
#{'foo': ['a', 'b', 'c'], 'bar': ['d', 'e', 'f']}
e
#{'car': ['ford', 'honda', 'acura'], 'what': ['huh', 'yeah', 'ok']}
combine_df = pd.DataFrame()
df1= pd.DataFrame()
df2= pd.DataFrame(d)
df3= pd.DataFrame()
df4= pd.DataFrame(e)
df5= pd.DataFrame()
number = 5
for i in range(1,number):
master_df = pd.concat([master_df, eval("df"+str(i))],ignore_index=True,sort=False)
master_df
#Out[2284]:
# foo bar car what
#0 a d NaN NaN
#1 b e NaN NaN
#2 c f NaN NaN
#3 NaN NaN ford huh
#4 NaN NaN honda yeah
#5 NaN NaN acura ok