欢迎访问宙启技术站
智能推送

pandas.DataFramejoin()函数实现表格合并操作

发布时间:2023-12-28 23:15:08

pandas是一个功能强大的Python库,用于数据处理和分析。它提供了一个函数join(),用于将两个或多个DataFrame对象水平合并为一个DataFrame对象。这个函数在数据分析和数据整合过程中非常有用。

join()函数的基本语法如下:

DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='')

参数说明:

- other:另一个DataFrame对象,用于进行合并操作。

- on:指定用于合并的列名或列名的列表。如果不指定,将根据两个DataFrame对象的索引进行合并操作。

- how:指定合并方式,包括'left'、'right'、'outer'和'inner'。默认为'left'。

- 'left':以左边的DataFrame为基准进行合并。

- 'right':以右边的DataFrame为基准进行合并。

- 'outer':将两个DataFrame中的所有行进行合并,缺失值用NaN填充。

- 'inner':只保留两个DataFrame中共有的行进行合并。

- lsuffixrsuffix:如果两个DataFrame中存在相同列名,可以使用这两个参数指定列名的后缀。默认为空。

下面通过一个示例来说明join()函数的使用。

假设我们有两个DataFrame对象:df1df2,它们分别表示两个班级的学生信息,包括学号和姓名。我们要将这两个DataFrame按学号进行合并,并通过共同的学号将学生姓名合并到一个新的DataFrame中。

import pandas as pd

data1 = {'学号': ['001', '002', '003', '004'],
         '姓名': ['张三', '李四', '王五', '赵六']}
df1 = pd.DataFrame(data1)

data2 = {'学号': ['002', '003', '004', '005'],
         '姓名': ['小明', '小红', '小刚', '小美']}
df2 = pd.DataFrame(data2)

df3 = df1.join(df2.set_index('学号'), on='学号', rsuffix='_df2')

print(df3)

输出结果为:

  学号 名称  姓名_df2
0  001  张三     NaN
1  002  李四      小明
2  003  王五      小红
3  004  赵六      小刚

在上面的例子中,首先创建了两个DataFrame对象df1和df2,它们都有学号和姓名两列。然后,使用join()函数将df1和df2按学号进行合并,合并方式为左连接(left join),即以df1为基准,将df2中相同学号的行合并到df1中。合并后的结果保存在df3中。

join()函数的参数on='学号'指定了要进行合并的列名为'学号',这表示要根据学号将两个DataFrame进行合并。由于df2中存在一个列名为'学号',为了避免合并后的结果中出现重复的列名,我们使用了参数rsuffix='_df2',将df2中的'学号'列重命名为'学号_df2'。

从输出结果可以看出,合并后的DataFrame中包含了df1和df2中的所有学号列,并将相同的学号行合并在一起。对于在df1中存在但df2中不存在的学号,合并结果中对应的姓名为NaN。

这就是join()函数的简单用法和一个实际的例子。通过这个函数,我们可以方便地将多个DataFrame对象按照指定的条件进行合并操作,实现表格的整合和分析。