当前位置: 首页 > news >正文

Pandas数据清洗之数据分组和删除重复数据

数据分组

在Pandas中,你可以使用groupby()函数对DataFrame进行分组。这是一个非常强大的功能,可以基于一个或多个列的值来聚合数据。

这里是一个简单的例子来说明如何使用groupby()

  1. 导入Pandas库:

    import pandas as pd
    
  2. 创建一个示例DataFrame:

    data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],'C': [1, 2, 3, 4, 5, 6, 7, 8],'D': [10, 20, 30, 40, 50, 60, 70, 80]
    }
    df = pd.DataFrame(data)
    
  3. 使用groupby()函数进行分组:

    grouped = df.groupby('A')
    
  4. 应用聚合函数:

    • 要计算每个组中C列的总和:
      sum_grouped = grouped['C'].sum()
      
    • 要计算每个组中C列的平均值:
      mean_grouped = grouped['C'].mean()
      

如果你想要基于多列进行分组,只需将列名放在一个列表里即可:

grouped_multi = df.groupby(['A', 'B'])

你可以根据需要选择不同的聚合函数,例如sum(), mean(), count(), min(), max()等。

删除重复数据

在Pandas中,删除DataFrame中的重复行可以通过drop_duplicates()方法来实现。这个方法提供了很多选项来定制你如何处理重复的数据。

以下是一些基本用法:

示例代码:

  1. 导入Pandas库:

    import pandas as pd
    
  2. 创建一个示例DataFrame:

    data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],'C': [1, 2, 3, 4, 5, 6, 7, 8],'D': [10, 20, 30, 40, 50, 60, 70, 80]
    }
    df = pd.DataFrame(data)
    
  3. 删除重复行:

    • 删除所有列都相同的行:

      df_unique = df.drop_duplicates()
      
    • 只考虑特定列进行去重:

      df_unique = df.drop_duplicates(subset=['A', 'B'])
      
    • 保留最后一次出现的重复行:

      df_unique = df.drop_duplicates(keep='last')
      
    • 不保留任何重复行(即删除所有重复行):

      df_unique = df.drop_duplicates(keep=False)
      
  4. 查看结果:

    print(df_unique)
    

参数解释:

  • subset=None: 指定要检查哪些列是否存在重复项。默认为 None,表示检查所有列。
  • keep='first': 指定保留哪个版本的重复项。默认为 'first',表示保留第一次出现的重复项;也可以设置为 'last' 以保留最后一次出现的重复项;如果设置为 False,则删除所有重复项。
  • inplace=False: 如果设置为 True,则直接在原DataFrame上修改并返回 None。如果设置为 False(默认),则返回一个新的DataFrame。

http://www.mrgr.cn/news/4651.html

相关文章:

  • C++ | Leetcode C++题解之第354题俄罗斯套娃信封问题
  • 通过电影之镜,提升生活之美
  • springboot是如何处理yml配置文件的
  • c++中的iomanip
  • linux 挂载virtio-blk-device虚拟磁盘
  • 配置策略路由实战 附带基础网络知识
  • CAS-ViT实战:使用CAS-ViT实现图像分类任务(一)
  • Recyclerview分组列表学习备忘
  • GNU/Linux - GNU Software之ncurses
  • JavaScript 中的深拷贝新宠:structuredClone() 函数详解
  • 单片机烧录
  • 开发高质量PDF应用的不二选择:PdfiumViewer库详细解析
  • C语言手撕实战代码_循环单链表和循环双链表
  • 【15】Java字节码
  • 硬件工程师必须掌握的MOS管详细知识
  • 牛客网SQL进阶134: 满足条件的用户的试卷总完成次数和题目总练习次数
  • Linux系统编程——网络通信
  • Git存储库添加空目录-添加占位文件
  • Spring 中AutowireCapableBeanFactory
  • 【区块链+商贸零售】预付宝:商家数字经济服务平台 | FISCO BCOS应用案例