pandas.DataFramejoin()函数实现表格合并操作
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中共有的行进行合并。
- lsuffix和rsuffix:如果两个DataFrame中存在相同列名,可以使用这两个参数指定列名的后缀。默认为空。
下面通过一个示例来说明join()函数的使用。
假设我们有两个DataFrame对象:df1和df2,它们分别表示两个班级的学生信息,包括学号和姓名。我们要将这两个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对象按照指定的条件进行合并操作,实现表格的整合和分析。
