📅  最后修改于: 2023-12-03 14:52:11.476000             🧑  作者: Mango
在数据分析中,经常会遇到需要将具有不同键的数据框合并到一起的情况。Python的pandas库提供了多种合并数据框的函数和方法。在本篇文章中,我们将介绍如何合并具有不同键的数据框。
导入pandas库
import pandas as pd
创建两张数据框
df1 = pd.DataFrame({
'key': ['A', 'B', 'C', 'D'],
'value1': [1, 2, 3, 4],
})
df2 = pd.DataFrame({
'key': ['B', 'D'],
'value2': [5, 6],
})
数据框df1:
| key | value1 | | ---- | ------ | | A | 1 | | B | 2 | | C | 3 | | D | 4 |
数据框df2:
| key | value2 | | ---- | ------ | | B | 5 | | D | 6 |
内连接合并
内连接合并是指合并后只保留两张数据框中都出现过的关键字。
df3 = pd.merge(df1, df2, on='key', how='inner')
合并后的数据框df3:
| key | value1 | value2 | | ---- | ------ | ------ | | B | 2 | 5 | | D | 4 | 6 |
左连接合并
左连接合并是指以左边的数据框为主,将右边的数据框合并在左边的数据框中。如果右边的数据框中的关键字在左边的数据框中没有出现过,那么在合并后的数据中,右边的数据框将会出现缺失值NULL。
df4 = pd.merge(df1, df2, on='key', how='left')
合并后的数据框df4:
| key | value1 | value2 | | ---- | ------ | ------ | | A | 1 | NULL | | B | 2 | 5 | | C | 3 | NULL | | D | 4 | 6 |
右连接合并
右连接合并是指以右边的数据框为主,将左边的数据框合并在右边的数据框中。如果左边的数据框中的关键字在右边的数据框中没有出现过,那么在合并后的数据中,左边的数据框将会出现缺失值NULL。
df5 = pd.merge(df1, df2, on='key', how='right')
合并后的数据框df5:
| key | value1 | value2 | | ---- | ------ | ------ | | B | 2 | 5 | | D | 4 | 6 |
外连接合并
外连接合并是指合并后保留两张数据框中所有出现过的关键字,并在缺失值处填充NULL。
df6 = pd.merge(df1, df2, on='key', how='outer')
合并后的数据框df6:
| key | value1 | value2 | | ---- | ------ | ------ | | A | 1 | NULL | | B | 2 | 5 | | C | 3 | NULL | | D | 4 | 6 |
通过以上的介绍,我们了解了Python中如何合并具有不同键的数据框。pandas库内建立了多个函数和方法,分别适用于不同的合并方式。在实际应用中,我们需要根据不同的需求选择恰当的合并方式。