📌  相关文章
📜  合并左两个具有不同维度的数据框熊猫 (1)

📅  最后修改于: 2023-12-03 15:37:10.040000             🧑  作者: Mango

合并左两个具有不同维度的数据框熊猫

在数据处理中,我们常遇到需要合并两个数据框的情况。但如果这两个数据框的维度不同,例如一个数据框有3列,另一个数据框有4列,我们该如何进行合并?这时候就可以使用左合并。

左合并,即以左侧数据框为准,将左侧数据框中的所有行与右侧数据框中符合条件的行进行合并,没有匹配的则用 NaN 或指定的值填充。本文将介绍如何使用熊猫(Pandas)库进行左合并。

准备数据

下面我们先准备两个样本数据,一个包含了姓名和年龄信息,另一个包含了姓名和工资信息:

import pandas as pd

df1 = pd.DataFrame({'姓名': ['张三', '李四', '王五', '赵六'], '年龄': [18, 20, 22, 24]})
df2 = pd.DataFrame({'姓名': ['张三', '李四', '王五'], '工资': [10000, 20000, 30000]})

这两个数据框分别如下所示:

# 查看 df1 数据框内容
df1

# 输出结果
    姓名  年龄
0   张三  18
1   李四  20
2   王五  22
3   赵六  24

# 查看 df2 数据框内容
df2

# 输出结果
    姓名     工资
0   张三  10000
1   李四  20000
2   王五  30000
合并数据

接下来,我们使用 pd.merge() 函数进行合并。代码如下:

df_merge = pd.merge(df1, df2, on='姓名', how='left')

# 查看合并后的数据框内容
df_merge

执行完上述代码后,我们得到合并后的数据框 df_merge,如下所示:

# 输出结果
    姓名  年龄       工资
0   张三  18  10000.0
1   李四  20  20000.0
2   王五  22  30000.0
3   赵六  24      NaN

可以看到,我们成功地将 df1df2 两个数据框进行了左合并。其中,“姓名”这一列为合并依据,因此只有在 df1df2 的 “姓名” 列中都有相同值的行才会被合并。同时可以看到,在合并后的数据框中,“赵六”这一行因为在 df2 中找不到相应的 “姓名” 信息,因此被用 NaN 填充。

注:how 参数指定了合并方式,其取值可以为 'left'(左合并)、'right'(右合并)、'outer'(外合并)和 'inner'(内合并),默认为 'inner'

总结

本文介绍了如何利用熊猫库进行左合并。相信读者通过本文的学习,已经掌握了左合并的基本原理及操作方法。