Pandas Merge合并操作的4种方法
Pandas Merge是Pandas库中一个常用的数据处理技术,它可以将不同的DataFrame对象进行合并,以便更好地进行数据分析。Pandas Merge合并操作的4种方法分别是:inner join、left join、right join和outer join。
1. inner join
inner join是最常用的Pandas Merge合并操作方法,它只会返回两个DataFrame中共有的行,即共有的键值对。示例代码如下:
import pandas as pd # 定义两个DataFrame df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}, index=[0, 1, 2, 3]) df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'], 'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', 'D6', 'D7']}, index=[4, 5, 6, 7]) # 使用inner join进行合并 df3 = pd.merge(df1, df2, how='inner', on=['A', 'B', 'C']) print(df3)
输出结果如下:
A B C D_x D_y 0 A0 B0 C0 D0 D4 1 A1 B1 C1 D1 D5 2 A2 B2 C2 D2 D6 3 A3 B3 C3 D3 D7
2. left join
left join是另一种常用的Pandas Merge合并操作方法,它会返回左边DataFrame中所有的行,即第一个DataFrame中所有的行,而右边DataFrame中只会返回两个DataFrame中共有的行,即共有的键值对。示例代码如下:
import pandas as pd # 定义两个DataFrame df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}, index=[0, 1, 2, 3]) df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'], 'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', 'D6', 'D7']}, index=[4, 5, 6, 7]) # 使用left join进行合并 df3 = pd.merge(df1, df2, how='left', on=['A', 'B', 'C']) print(df3)
输出结果如下:
A B C D_x D_y 0 A0 B0 C0 D0 D4 1 A1 B1 C1 D1 D5 2 A2 B2 C2 D2 D6 3 A3 B3 C3 D3 D7
3. right join
right join和left join类似,只是它会返回右边DataFrame中所有的行,即第二个DataFrame中所有的行,而左边DataFrame中只会返回两个DataFrame中共有的行,即共有的键值对。示例代码如下:
import pandas as pd # 定义两个DataFrame df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}, index=[0, 1, 2, 3]) df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'], 'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'], 'D': ['D4', 'D5', 'D6', 'D7']}, index=[4, 5, 6, 7]) # 使用right join进行合并 df3 = pd.merge(df1, df2, how='right', on=['A', 'B', 'C']) print(df3)
输出结果如下:
A B C D_x D_y 0 A0 B0 C0 D0 D4 1 A1 B1 C1 D1 D5 2 A2 B2 C2 D2 D6 3 A3 B3 C3 D3 D7
4. outer join
outer join是最宽松的Pandas Merge合并操作方法,它会返回两个DataFrame中所有的行,即所有的键值对。示例代码如下:
import pandas as pd # 定义两个DataFrame df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}, index=[0, 1, 2, 3])