多个熊猫数据框的交集

Zan*_*nam 3 python merge concatenation dataframe pandas

我在列表中有多个数据帧(100),如下所示:

frameList = [df1,df2,..,df100]
Run Code Online (Sandbox Code Playgroud)

每个数据框都有两列DateTimeTemperature

我想与公共DateTime列上的所有数据框相交,并将所有 Temperature列合并/合并为一个大数据框:df1的温度,df2的温度,df3的温度,..,df100的温度。

(熊猫merge不起作用,因为我必须计算多个(99)成对交叉点)。

Viv*_*san 5

你可以尝试在Python中使用reduce功能..像这样

dfs = [df0, df1, df2, dfN]
df_final = reduce(lambda left,right: pd.merge(left,right,on='DateTime'), dfs)
Run Code Online (Sandbox Code Playgroud)


小智 5

使用pd.concat,适用于DataFrame或Series列表。

pd.concat(frameList, axis=1, join='inner')
Run Code Online (Sandbox Code Playgroud)

这比使用更好pd.merge,因为pd.merge每次执行时都会成对复制数据。pd.concat仅复制一次。但是,pd.concat只能基于轴pd.merge合并,而也可以在(多个)列上合并。