我想根据它们的ID
列将这3个数据帧组合起来,并获得以下输出。我正在寻找一种简短的方法,以便稍后使用它来组合更多数量的数据帧。
输入:
+---+---+---+
| ID| a| b|
+---+---+---+
| A| 1| 1|
| B| 2| 2|
+---+---+---+
+---+---+---+
| ID| c| d|
+---+---+---+
| A| 3|333|
| B| 4|444|
+---+---+---+
+---+---+---+
| ID| e| f|
+---+---+---+
| A|555| 5|
| B|666| 6|
+---+---+---+
输出:
+---+---+---+---+---+---+---+
| ID| a| b| c| d| e| f|
+---+---+---+---+---+---+---+
| A| 1| 1| 3|333|555| 5|
| B| 2| 2| 4|444|666| 6|
+---+---+---+---+---+---+---+
答案:对于以后可能觉得有用的人!
# create list of dataframes
list_df = [df1, df2, df3]
# merge all at once
df_all = reduce(lambda x, y: x.join(y, on="ID"), list_df)
这3个数据帧可以根据ID列进行转换。
df = df1.join(df2, 'ID').join(df3, 'ID')