如何在 pandas 中合并多个 dataframe(示例)


您可以使用以下语法在 pandas 中一次合并多个 DataFrame:

 import pandas as pd
from functools import reduce

#define list of DataFrames
dfs = [df1, df2, df3]

#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' column_name '],
                                            how=' outer '), dfs)

以下示例展示了如何在实践中使用此语法:

示例:合并Pandas 中的多个 DataFrame

假设我们有以下三个 panda DataFrame,其中包含来自不同球队的篮球运动员的信息:

 import pandas as pd

#createDataFrames
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'],
                    ' points ': [18, 22, 19, 14]})

df2 = pd. DataFrame ({' team ': ['A', 'B', 'C'],
                    ' assists ': [4, 9, 14]})

df3 = pd. DataFrame ({' team ': ['C', 'D', 'E', 'F'],
                    ' rebounds ': [10, 17, 11, 10]})

#view DataFrames
print (df1)

  team points
0 to 18
1 B 22
2 C 19
3 D 14

print (df2)

  team assists
0 to 4
1 B 9
2 C 14

print (df3)

  team rebounds
0 C 10
1 D 17
2 E 11
3 F 10

我们可以使用以下语法将三个 DataFrame 合并为一个:

 from functools import reduce

#define list of DataFrames
dfs = [df1, df2, df3]

#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' team '],
                                            how=' outer '), dfs)

#view merged DataFrame
print (final_df)

  team points assists rebounds
0 A 18.0 4.0 NaN
1 B 22.0 9.0 NaN
2 C 19.0 14.0 10.0
3 D 14.0 NaN 17.0
4 E NaN NaN 11.0
5 F NaN NaN 10.0

最终结果是一个包含所有三个 DataFrame 信息的 DataFrame。

请注意, NaN值用于填充最终 DataFrame 中的空单元格。

要使用NaN以外的值填充空单元格,可以使用fillna()函数:

 from functools import reduce

#define list of DataFrames
dfs = [df1, df2, df3]

#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' team '],
                                            how=' outer '), dfs). fillna (' none ')

#view merged DataFrame
print (final_df)

  team points assists rebounds
0 A 18.0 4.0 none
1 B 22.0 9.0 none
2 C 19.0 14.0 10.0
3 D 14.0 none 17.0
4 E none none 11.0
5 F none none 10.0

现在,每个空单元格都用“ none ”而不是NaN填充。

注意:您可以在此处找到 pandas 中合并功能的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何合并索引上的两个 Pandas DataFrame
如何跨多列合并 Pandas DataFrame
如何堆叠多个 Pandas DataFrame

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注