Pandas Merge合并操作的4种方法详解及示例代码

分类:知识百科 日期: 点击:0

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])

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。