我可以使用for循环来连接带有变量的数据帧吗?

2024-03-29 12:02:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想concate的数据帧的基础上输入数字的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个数据帧和concat n个基于输入数n的数据帧

如果这个数字=10,我可以得到10个数据帧的组合


Tags: 数据代码masternumberdataframedffor数字
1条回答
网友
1楼 · 发布于 2024-03-29 12:02:29

你可以这样做,但我不确定你能得到预期的结果。你也得用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

相关问题 更多 >