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

 更新时间:2022年05月22日 11:30:13   作者:​ tigeriaf   ​  
这篇文章主要介绍了Python数据分析之 Pandas Dataframe合并和去重操作,文章基于python的相关资料展开详细的内容介绍,需要的小伙伴可以参考一下

一、之 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)

常用的参数说明:

  • left、right:指定左右两个要进行合并的 DataFrame 对象
  • how:指定合并类型,可以选择left、right、outer、inner,此参数可以确定以哪边(左边、右边或者左右共有)的键为基准,如果出现匹配失败的用NaN填充,默认为inner,具体如下:
    • left:代表左连接,以左DataFrame为基准,右侧匹配失败的用NaN填充
    • right:代表右连接,以右DataFrame为基准,左侧匹配失败的用NaN填充
    • inner:代表内连接,取交集
    • outer:代表外连接,取并集,匹配失败的用NaN填充
  • on:指定用于连接的键,也就是列名,传递改参数的话,必须保证传递的“键”在左右两边的DataFrame中都存在
  • left_on:指定左侧DataFrame中用于连接的键
  • right_on:指定右侧DataFrame中用于连接的键
  • left_index & right_index:表示以行索引作为合并基准,默认为False
  • sort:指定是否按照字典顺序通过连接键对结果DataFrame进行排序,默认为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)

参数说明如下:

  • subset:指定要进行去重的列名,默认为None,可以使用列表指定一个或多个列名
  • keep:有三个参数可选:first、last、False,默认为first,表示只保留第一次出现的重复项,删除其余重复项;last表示只保留最后一次出现的重复项;False表示删除所有重复项
  • inplace:是否在原Dataframe对象上进行操作
  • ignore_index:默认为False,设置为True可以重新生成行索引。

例如,对下面 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)

到此这篇关于Python数据分析之 Pandas Dataframe合并和去重操作的文章就介绍到这了,更多相关Pandas Dataframe合并去重内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PyTorch Autograd的核心原理和功能深入探究

    PyTorch Autograd的核心原理和功能深入探究

    本文深入探讨了PyTorch中Autograd的核心原理和功能,从基本概念、Tensor与Autograd的交互,到计算图的构建和管理,再到反向传播和梯度计算的细节,最后涵盖了Autograd的高级特性
    2024-01-01
  • Python谱减法语音降噪实例

    Python谱减法语音降噪实例

    今天小编就为大家分享一篇Python谱减法语音降噪实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Matlab中关于argmax、argmin函数的使用解读

    Matlab中关于argmax、argmin函数的使用解读

    这篇文章主要介绍了Matlab中关于argmax、argmin函数的使用解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Django项目中包含多个应用时对url的配置方法

    Django项目中包含多个应用时对url的配置方法

    今天小编就为大家分享一篇Django项目中包含多个应用时对url的配置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 详解Python中的数据清洗工具flashtext

    详解Python中的数据清洗工具flashtext

    FlashText是GitHub上的一个开源Python库,正如之前所提到的,它在提取关键字和替换关键字任务上有着极高的性能。本文将详解一下flashtext的使用,需要的可以参考一下
    2022-06-06
  • Python遍历目录下文件、读取、千万条数据合并详情

    Python遍历目录下文件、读取、千万条数据合并详情

    这篇文章主要介绍了Python遍历目录下文件、读取、千万条数据合并详情,对文件夹和文件进行属性判断,首先对文件夹进行遍历,看文件夹里有什么样的文件,读取出文件夹中的所有文件,下面文章将详细介绍该内容,需要的小伙伴可以参考一下
    2022-01-01
  • selenium在scrapy中的使用代码

    selenium在scrapy中的使用代码

    本文给大家分享selenium在scrapy中的使用代码,使用selenium可以很好的帮助我们获取一些重要数据信息,本文通过代码给大家详细介绍,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • 用python读取xlsx文件

    用python读取xlsx文件

    这篇文章主要介绍了用python读取xlsx文件的方法,帮助大家更好的利用python处理excel文件,感兴趣的朋友可以了解下
    2020-12-12
  • Python代码实现动图倒放

    Python代码实现动图倒放

    这篇文章主要介绍了Python代码实现动图倒放,文章通过利用gif动图实现倒放效果,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-03-03
  • 使用Pytorch+PyG实现MLP的详细过程

    使用Pytorch+PyG实现MLP的详细过程

    图神经网络是最近 AI 领域最热门的方向之一,下面这篇文章主要给大家介绍了关于使用Pytorch+PyG实现MLP的详细过程,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03

最新评论