Python 合并数据帧列表以创建一个数据帧
我有一个包含18个数据帧的列表: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) 如有需要
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)