Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 合并数据帧列表以创建一个数据帧_Python_Python 3.x_Pandas - Fatal编程技术网

Python 合并数据帧列表以创建一个数据帧

Python 合并数据帧列表以创建一个数据帧,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个包含18个数据帧的列表: dfList = [df1, df2, df3, df4, df5, df6.....df18] 所有数据帧都有一个公共id列,因此很容易一次将它们与pd.merge 2连接在一起。有没有一种方法可以一次将它们连接起来,以便dfList作为单个数据帧返回?我认为您需要,但首先按公共列设置每个数据帧的索引: dfs = [df.set_index('id') for df in dfList] print pd.concat(dfs, axis=1) 如有需要

我有一个包含18个数据帧的列表:

dfList = [df1, df2, df3, df4, df5, df6.....df18]
所有数据帧都有一个公共id列,因此很容易一次将它们与pd.merge 2连接在一起。有没有一种方法可以一次将它们连接起来,以便dfList作为单个数据帧返回?

我认为您需要,但首先按公共列设置每个
数据帧的索引:

dfs = [df.set_index('id') for df in dfList]
print pd.concat(dfs, axis=1)
如有需要,请加入:


pd.concat(dfList,axis=1)
将它们组合在一起,但每个df都有自己的行(因此每个id都重复了18次)我试图将其作为变量写入:
sdf=pd.concat(dfs,axis=1)
并得到了
TypeError:第一个参数必须是pandas对象的iterable,您传递了一个类型为“DataFrame”的对象
我不明白。你能详细说明一下循环选项吗?听起来像是我要找的
from functools import reduce
df = reduce(lambda df1,df2: pd.merge(df1,df2,on='id'), dfList)