我在列表中有许多数据框:
frameList = [df1,df2,..,df100]
每个数据框由第一列"DateTime"
组成,第二列为"Temperature"
。
如何通过在DateTime
上交叉来查找列表中所有数据框的公共温度列。使用pandas merge
不会起作用,因为我必须多次重做成对交叉。
编辑:
我认为单词merge
令人困惑,将列标题更改为只有交集。
编辑:
我的最终输出应该是DateTime
作为第一列,然后是来自df1的温度,来自df2的温度,来自df3的温度,..,来自df100的温度。
答案 0 :(得分:3)
使用pd.concat
,它适用于DataFrame或系列列表。
pd.concat(frameList, axis=1, join='inner')
这比使用pd.merge
要好,因为pd.merge
会在每次执行时成对复制数据。 pd.concat
只复制一次。但是,pd.concat
仅基于轴进行合并,而pd.merge
也可以合并(多个)列。
答案 1 :(得分:2)
你可以尝试在python中使用reduce功能......像这样的东西
runif
答案 2 :(得分:2)
你可以像这样迭代你的列表:
df_merge = frameList[0]
for df in frameList[1:]:
df_merge = pd.merge(df_merge, df, on='DateTime', how='inner')