Python数据分析之 Pandas Dataframe合并和去重操作

  • Post category:Python

首先,本文会详细讲解Pandas Dataframe的合并和去重操作,其中会包含两条示例说明。

1. Pandas Dataframe合并

Pandas Dataframe的合并操作就是将不同的Dataframe按照某个共同的列或索引进行连接,可以使用Pandas的merge方法实现。示例如下:

示例1

假设我们有两个Dataframe,df1和df2如下:

import pandas as pd

df1 = pd.DataFrame({'学号':[1,2,3],'姓名':['小明','小红','小刚']})
df2 = pd.DataFrame({'学号':[1,2,4],'年龄':[18,19,20]})

我们可以使用merge方法基于学号列进行连接,代码如下:

merge_result = pd.merge(df1, df2, on='学号')

合并后的结果如下:

   学号  姓名  年龄
0   1  小明  18
1   2  小红  19

从结果可以看出,merge方法自动根据学号列找到两个Dataframe中学号相同的行进行连接,并将其他列的值合并在一起。

示例2

假设我们有两个Dataframe,df1和df2如下:

df1 = pd.DataFrame({'学号':[1,2,3],'姓名':['小明','小红','小刚']})
df2 = pd.DataFrame({'学生姓名':['小明','小红','小刚'],'国籍':['中国','中国','美国']})

我们现在需要将两个Dataframe合并成一个Dataframe,并以姓名列作为共同列。这个时候,我们需要使用left_on和right_on参数来指定合并的列。代码如下:

merge_result = pd.merge(df1, df2, left_on='姓名', right_on='学生姓名')

合并后的结果如下:

   学号  姓名 学生姓名  国籍
0   1  小明    小明  中国
1   2  小红    小红  中国
2   3  小刚    小刚  美国

从结果可以看出,我们使用left_on和right_on参数指定了合并的列,并将两个Dataframe中相同列名的列区分开来,最终合并成了一个Dataframe。

2. Pandas Dataframe去重

Pandas Dataframe的去重操作可以使用Pandas的drop_duplicates方法实现,该方法可以根据指定列或索引进行去重。示例如下:

示例1

假设我们有一个Dataframe,df如下:

df = pd.DataFrame({'学号':[1,2,3,2],'姓名':['小明','小红','小刚','小红']})

我们现在需要对学号列和姓名列同时进行去重,并返回去重后的新Dataframe。代码如下:

deduped_df = df.drop_duplicates(['学号', '姓名'])

去重后的结果如下:

   学号  姓名
0   1  小明
1   2  小红
2   3  小刚

从结果可以看出,drop_duplicates方法自动根据指定列进行去重,并返回去重后的新Dataframe。

示例2

假设我们有一个Dataframe,df如下:

df = pd.DataFrame({'学号':[1,2,3],'姓名':['小明','小红','小刚']})

我们现在需要对所有列进行去重,并返回去重后的新Dataframe。代码如下:

deduped_df = df.drop_duplicates()

去重后的结果和原始数据完全相同,说明该方法可以处理所有列的去重操作。

至此,Pandas Dataframe合并和去重操作的攻略就讲解完毕了。希望对大家进行Python数据分析的过程中有所帮助。