Python基础之pandas:文件读取与数据处理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、文件读取
    • 1.以pd.read_csv()为例:
    • 2.数据查看
  • 二、数据离散化、排序
    • 1.pd.cut()离散化,以按范围加标签为例
    • 2. pd.qcut()实现离散化
    • 3.排序
    • 4.Series.map()&Series.apply()
  • 三、数据处理
    • 1.发现缺失值
    • 2.剔除缺失值
    • 3.填充缺失值
      • 1)固定值填充
      • 2)前向填充&后向填充
    • 4.df.replace()
    • 5.重复值处理
    • 6.四分位法识别异常值
  • 四、分组、索引及聚合
    • 1.分组函数
    • 2.索引设置与重置
      • 1)重置索引
      • 2)设置索引
      • 3)索引排序
    • 3.分组后常见操作
      • 1)分组后聚合
      • 2)分组后过滤filter
      • 3)分组后过滤transform
      • 4)分组后过滤apply

一、文件读取

方法:

  • pd.read_csv()
  • pd.read_excel()
  • pd.read_json()
  • pd.read_sql()
  • pd.read_xml()

1.以pd.read_csv()为例:

在这里插入图片描述

2.数据查看

在这里插入图片描述
在这里插入图片描述
df.describe()方法只针对数值列的描述性统计
在这里插入图片描述
统计出现次数
在这里插入图片描述

二、数据离散化、排序

1.pd.cut()离散化,以按范围加标签为例

在这里插入图片描述

2. pd.qcut()实现离散化

cut是根据每个值进行离散化,qcut是根据每个值出现的次数进行离散,也就是基于分位数的离散化功能
在这里插入图片描述

3.排序

  • df.sort_index():按照默认索引按正序排序
    在这里插入图片描述
  • data1.sort_values()按照实际值排序
    在这里插入图片描述
  • Series.nlargest()获取前N个最大值,与之相对于的为Series.nsmallest()
    在这里插入图片描述

4.Series.map()&Series.apply()

  • Series.map()
    map()是Series中特有方法,通过它实现对Series每个元素互换
    在这里插入图片描述

  • Series.apply()和df.apply()
    apply()在对Series操作时,会作用到每个值上,在对DataFrame操作时,会作用到所有行或列(通过axis控制)
    在这里插入图片描述

  • df.applymap()
    applymap方法针对与DataFrame,其效果类似于apply对series的效果

  • pandas中map()、apply()、applymap()的区别:
    1、map()方法适用于Series对象,作用于Series里的一个个元素,可以通过字典或函数类对象来构建映射关系对Series对象进行转换;
    2、apply()方法适用于Series对象、DataFrame对象、Groupby对象Series.apply()作用于Series里的一个个元素df.apply()处理的是行或列数据(本质上处理的是单个Series),用函数类对象来构建映射关系对Series对象进行转换;
    3、applymap()方法用来处理DataFrame对象的单个元素值,作用于df中的一个个元素,也是使用函数类对象映射转换;

三、数据处理

1.发现缺失值

在这里插入图片描述

2.剔除缺失值

df.dropna():

  • how:how为all时,只有当该列(或行)全部缺失时,才会将该列删除;为any时,当该列(或行)有缺失时,会将该列删除
  • thresh:设置非缺失值个数,axis=1当该列非缺失值个数大于等于设置的值时,该列保留,否则删除

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.填充缺失值

df.fillna()
填充思路

  • 根据业务知识填充
  • 连续性变量缺失值的填充(均值、众数)
  • 分类型变量缺失值的填充(众数)
  • 预测值填充

1)固定值填充

在这里插入图片描述

2)前向填充&后向填充

  • 前向填充:取前一个值填充
  • 后向填充:取后一个值填充
    在这里插入图片描述

4.df.replace()

有些异常值“-”,不是缺失值,但程序无法处理,需要换成程序可失败的缺失值
在这里插入图片描述

5.重复值处理

df.drop_duplicates()

  • 不传参时,删除一模一样的数据,并保留出现的第一条
  • keep:first、last、false数据保留原则
  • subset用作字段判断依据
    在这里插入图片描述

6.四分位法识别异常值

在这里插入图片描述

四、分组、索引及聚合

1.分组函数

groupby函数之间按组进行迭代,每一组都是Series或DataFrame
在这里插入图片描述

2.索引设置与重置

在这里插入图片描述

1)重置索引

在这里插入图片描述

2)设置索引

在这里插入图片描述

3)索引排序

在这里插入图片描述

3.分组后常见操作

1)分组后聚合

groupby().aggregate()方法,填入对应字典映射,即可查看数据中位数、均值,合计

在这里插入图片描述

2)分组后过滤filter

在这里插入图片描述

3)分组后过滤transform

groupby().transform()方法,在数据转换之后的形状和原来是一样的,但并不是单纯的将一列数据转换,而是对分组之后的小组数据内部按照相同的逻辑和组内指标进行转换,常见的例子是实现组内数据标准化
在这里插入图片描述

4)分组后过滤apply

输入一个分组的DataFrame进行apply(),可以返回一个DataFrame或Series或一个标量。
group和apply的组合操作可以适应apply()返回的结果类型
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/588749.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业互联网网关软件分析与设计

一、 案例软件分析 一、总体目标 工业互联网是新一代信息技术与制造业深度融合形成的新兴业态和应用模式,其发展前景广阔。工业互联网网关是将各采集监测点的数据通过无线或有线传感网络进行数据汇集,进行统一有效的监管。在工业互联网体系架构中&…

分享几个可以免费使用的GPT网站吧

1. ChatGAI ChatGAI是一个界面简洁的AI平台,提供App和网页版,每日均有免费使用机会。 2. ChatGPT 本网站向大家开放了ChatGPT 3.5和4.0版本的免费体验,特别适合新用户。每天都有免费次数,响应迅速,注册便捷&#xff0…

刷题DAY43 | LeetCode 1049-最后一块石头的重量 II 494-目标和 474-一和零

1049 最后一块石头的重量 II(medium) 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且…

(2024)Ubuntu源码安装多个版本的opencv并切换使用

本人工作会用到x86_64的opencv和aarch64的opencv,所以写下来备忘自用 一、源码编译安装 依赖库安装: sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev o…

WPF-基础及进阶扩展合集(持续更新)

目录 一、基础 1、GridSplitter分割线 2、x:static访问资源文件 3、wpf触发器 4、添加xaml资源文件 5、Convert转换器 6、多路绑定与多路转换器 二、进阶扩展 1、HierarchicalDataTemplate 2、XmlDataProvider从外部文件获取源 3、TextBox在CellTemplate中的焦点问题…

Harmony创建Page省事小技巧

在创建Page页面时,选择ArkTS File时,创建的文件不会自动生成基础代码,也不会自动在main_page.json中自动进行注册,如何解决问题呢,其实很简单创建Page页面时选择Page项后就会创建Page文件,创建完的页面会自…

【C语言】2048小游戏【附源码】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 一、游戏描述: 2048是一款数字益智类游戏,玩家需要使用键盘控制数字方块的移动,合并相同数字的方块,最终达到数字方块上出现“2048”的目标。 每次移动操作,所…

掌握这些技巧:Flutter应用顺利登陆App Store的秘诀

引言 🚀 Flutter作为一种跨平台的移动应用程序开发框架,为开发者提供了便利,使他们能够通过单一的代码库构建出高性能、高保真度的应用程序,同时支持Android和iOS两个平台。然而,完成Flutter应用程序的开发只是第一步…

Python快速入门系列-8(Python数据分析与可视化)

第八章:Python数据分析与可视化 8.1 数据处理与清洗8.1.1 数据加载与查看8.1.2 数据清洗与处理8.1.3 数据转换与整理8.2 数据可视化工具介绍8.2.1 Matplotlib8.2.2 Seaborn8.2.3 Plotly8.3 数据挖掘与机器学习简介8.3.1 Scikit-learn8.3.2 TensorFlow总结在本章中,我们将探讨…

了解这些技术:Flutter应用顺利登陆iOS平台的步骤与方法

引言 🚀 Flutter作为一种跨平台的移动应用程序开发框架,为开发者提供了便利,使他们能够通过单一的代码库构建出高性能、高保真度的应用程序,同时支持Android和iOS两个平台。然而,完成Flutter应用程序的开发只是第一步…

Flash存储芯片:NOR Flash、NAND Flash、UFS和eMMC的比较与解析

前言 在数字化时代的今天,数据的存储和管理变得越来越重要。各种各样的存储技术应运而生,以满足不同的使用场景和需求。其中,Flash存储芯片以其非易失性、可擦写性和可编程性等优势,占据了重要地位。本博客将详细介绍Flash存储芯片…

在线点餐(源码+文档)

在线点餐系统(小程序、ios、安卓都可部署) 文件包含内容程序简要说明含有功能项目截图客户端主页登录点餐注册个人资料我的 后台管理商品管理分类管理用户管理登录页订单管理分类管理 文件包含内容 1、搭建视频 2、流程图 3、开题报告 4、数据库 5、参考…