📅  最后修改于: 2023-12-03 15:37:48.454000             🧑  作者: Mango
在数据分析和处理中,合并多个数据源是一个常见的任务。在 Pandas 中,我们可以使用 merge() 函数来将多个数据框基于列进行合并。
我们假设有三个数据框,分别为 df1、df2 和 df3,它们有相同的列名(key),我们可以使用以下代码将它们合并成一个数据框:
import pandas as pd
# 创建三个数据框
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
'value2': [5, 6, 7, 8]})
df3 = pd.DataFrame({'key': ['C', 'E', 'F', 'G'],
'value3': [9, 10, 11, 12]})
# 将三个数据框合并成一个数据框
df_merged = pd.merge(df1, df2, on='key', how='outer')
df_merged = pd.merge(df_merged, df3, on='key', how='outer')
print(df_merged)
输出结果为:
key value1 value2 value3
0 A 1.0 NaN NaN
1 B 2.0 5.0 NaN
2 C 3.0 NaN 9.0
3 D 4.0 6.0 NaN
4 E NaN 7.0 10.0
5 F NaN 8.0 11.0
6 G NaN NaN 12.0
在上面的例子中,我们使用了 merge() 函数来合并三个数据框。下面对此函数的参数进行说明。
内连接(inner join):只保留两个数据框中交集的部分,即只保留两个数据框中都存在的行。
df_merged = pd.merge(df1, df2, on='key', how='inner')
左连接(left join):保留左数据框所有的行,右数据框中与左数据框相匹配的行和未匹配的行。
df_merged = pd.merge(df1, df2, on='key', how='left')
右连接(right join):保留右数据框所有的行,左数据框中与右数据框相匹配的行和未匹配的行。
df_merged = pd.merge(df1, df2, on='key', how='right')
外连接(full outer join):保留两个数据框中所有的行,如果某个数据框中没有匹配的行,则用 NaN 来填充。
df_merged = pd.merge(df1, df2, on='key', how='outer')
本文介绍了如何基于列合并三个数据框,包括合并方式的参数说明和使用实例。在实际的数据处理中,我们需要根据具体的需求选择合适的合并方式来处理数据。