亲宝软件园·资讯

展开

Pandas Dataframe合并去重

​ tigeriaf   ​ 人气:15

一、之 Pandas Dataframe合并

在数据分析中,避免不了要从多个数据集中取数据,那就避免不了要进行数据的合并,这篇文章就来介绍一下 Dataframe 对象的合并操作。

Pandas 提供了merge()方法来进行合并操作,使用语法如下:

pd.merge(left, right, how="inner", on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=False)

常用的参数说明:

例如,对下面两个 DataFrame 对象执行合并操作:

import pandas as pd
data = {"name": ["Alice", "Bob", "Cindy", "David"], "age": [25, 23, 28, 24], "gender": ["woman", "man", "woman", "man"]}
df1 = pd.DataFrame(data)
df1

data = {"name": ["Alice", "Bob", "Cindy", "Emilie"], "city": ["beijing", "beijing", "jinan", "shanghai"]}
df2 = pd.DataFrame(data)
df2

使用name作为连接键:

merge_pd = pd.merge(df1, df2, on="name")
merge_pd

结果输出如下:

设置为左连接:

merge_pd = pd.merge(df1, df2, on="name", how="left")
merge_pd

结果输出如下:

在进行数据分析时,数据的质量可能并不理想,有可能包含一些重复数据,那我们就要进行数据的“去重”操作,删除重复的数据,保留唯一的数据项,从而提高数据集整体的精确度,同时也可以节省空间、提升读写性能等,接下来就来介绍一下 Pandas Dataframe 的去重操作。

二、去重操作

Pandas 提供了drop_duplicates()方法进行数据的去重操作,具体使用格式如下:

df.drop_duplicates(subset=None, keep="first", inplace=False, ignore_index=False)

参数说明如下:

例如,对下面 DataFrame 对象进行去重操作:

可以看到该DataFrame 对象中索引为1、3的行是重复的,下面进行去除:

保留第一次出现的重复项

df.drop_duplicates(inplace=True)
df

结果输出如下:

删除所有重复项

df.drop_duplicates(keep=False, inplace=True)
df

结果输出如下:

ignore_index参数使用

df.drop_duplicates(inplace=True, ignore_index=True)
df

ignore_index设置为True后,通过结果可以看到,行索引进行了重排。

当然drop_duplicates()方法也可以根据指定列名去重,给subset传递参数即可,例如根据name列进行去重:

df.drop_duplicates(subset=["name"], inplace=True)

加载全部内容

相关教程
猜你喜欢
用户评论