从列表中连接数据帧



我想将一个数据框(df)与存储在数据框列表中的另一个数据框连接起来。

dflist = [df1, df2, df3]

我想要的是一个像

这样的数据框架
new_dflist = [df+df1, df+df2, df+df3]
new_dflist = []
for n in dflist:
new_dflist.append(pd.concat(df, dflist[n]))

但是我得到错误信息
TypeError: list indices must be integers or slices, not DataFrame

我也尝试了enumerate,但我得到错误消息
TypeError: list indices must be integers or slices, not tuple

试试这个:

dflist = [df1, df2, df3]
new_dflist=[]
for n in dflist:
new_dflist.append(pd.concat([df, n]))

n是一个数据框架,你试图把它放在列表索引

但是我得到了错误,TypeError:列表索引必须是整数或切片,而不是DataFrame

这是因为n是一个数据帧,而不是一个整数。你似乎认为for循环给了你列表的索引,但实际上它直接给了你元素。只需修改代码,使用for循环迭代器中的数据框架:

new_dflist=[]
for new_df in dflist:
new_dflist.append(pd.concat([df, new_df]))

或者,您可以在单行中使用列表推导式完成此操作:

new_dflist=[pd.concat([df, new_df]) for new_df in dflist]

最新更新