多个pandas数据帧的交集

2024-07-01 07:06:01 发布

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

我在一个列表中有许多数据帧(100):

frameList = [df1,df2,..,df100]

每个数据帧有两列DateTimeTemperature。在

我想让公共DateTime列上的所有数据帧相交,并将它们的所有Temperature列组合/合并到一个大数据帧中:来自df1的温度,来自df2的温度,来自df3的温度,…,来自df100的温度。在

(pandasmerge不起作用,因为我必须计算多个(99)对交集)。在


Tags: 数据列表datetime温度df1df2temperaturedf3
3条回答

你可以像这样重复你的列表:

df_merge = frameList[0]
for df in frameList[1:]:       
    df_merge = pd.merge(df_merge, df, on='DateTime', how='inner')

您可以尝试在python中使用reduce功能

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

使用pd.concat,它可以处理数据帧或序列的列表。在

pd.concat(frameList, axis=1, join='inner')

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

相关问题 更多 >

    热门问题