Python数据分析之Pandas的数据加载与预处理

一、数据分析

数据分析就是让看似杂乱无章的数据产生价值,通过数据的筛选、汇总等等操作将数据背后的信息集中和提炼出来,最终分析出一个结果或预测出事件的变化规律。

二、数据清洗

数据加载与预览

1、去除/填充有缺失的数据

2、去除/修改格式错误或内容错误的数据

3、去除/修改逻辑错误的数据

4、去除不需要的数据

5、关联性验证

三、Pandas简介

Pandas 库是一个基于NumPy的免费、开源的第三方 Python 库,是 Python 数据分析必不可少的工具之一,它为 Python 数据分析提供了高性能,且易于使用的数据结构,即 Series 和 DataFrame。Pandas 自诞生后被应用于众多的领域,比如财务系统、管理系统、金融、统计学、社会科学等。 Pandas享有Python数据分析“三剑客之一”的盛名,已经成为 Python 数据分析的必备高级工具

Pandas 主要是用作提炼数据使用

Numpy 则提供强大的科学计算

Matplotlib 负责数据可视化的操作

四、Pandas基本使用

1、常见格式数据读取

pd.read_excel()  # 从excel的.xls或.xlsx格式读取表格数据
pd.read_csv()    # 从csv文件读取数据 
pd.read_table()  # 从txt文件读取数据
pd.read_sql()    # 将sql查询的结果(使用SQLAlchemy)读取为pandas的DataFrame
pd.read_html()   # 读取网页中的表格数据
pd.read_json()   # 从json字符串中读取数据
pd.read_xml      # 从xml文件中读取数据

2、常用函数

data.shape       # 数据维度,看看数据多少行,多少列
data.head(3)     # 检查头数据
data.info()      # 查看数据基本信息
data.dtypes      # 查看数据类型
data.describe()  # 查看数值数据统计信息
 count:数量统计,此列共有多少有效值unipue:不同的值有多少个std:标准差min:最小值25%:四分之一分位数50%:二分之一分位数75%:四分之三分位数max:最大值mean:均值

3、数据存储

df.to_csv() 	 	# 存储为csv文件
df.to_excel() 	 	# 存储为excel文件
df.to_html()  	 	# 存储为html文件
df.to_json()  	 	# 存储为json文件
df.to_sql() 	 	# 存储为sql文件

4、查看指定多行、列

data.columns.tolist()
data[1:5]
data[[’ip’,’phone’]]

5、查看指定数据

data.loc[row,columns]  基于标签索引选取数据 前闭后闭

data.iloc[row,columns] 基于整数索引选取数据 前闭后开

6、缺失值检查与处理

data[data.isnull().values] # 查看缺失值

data.dropna() # 删除缺失值

data.fillna() # 填充缺失值

7、缺失值检查处理

data.isna().sum().sum()  # 检查全部缺失值总数

data.isnull().sum()      # 检查每列缺失值

# 将缺失值进行高亮 

(data[data.isnull().any(1) == True]
.style
.highlight_null(null_color='skyblue')
.set_table_attributes('style="font-size: 10px"'))

data1 = data.fillna('*********') # 填充固定值

data2 = data.fillna(method='bfill')  # 向下填充

# # 均值填充

data3 = data['收益(元)'].fillna(data['收益(元)'].mean())

data3.map(lambda cell: '%.2f' % cell)

8、异常值检查与处理

# 大多数时候,我们是从csv文件中导入的数据,此时Dataframe中对应的时间列是字符串或时间戳的形式
# type(user['create_time'][1])# 运用pd.to_datetime(),可以将对应的列转换为Pandas中的datetime64类型,便于后期的处理
user['create_time'] = pd.to_datetime(user['create_time'],unit='s')
user['create_time'] = user['create_time'].map(lambda x : pd.to_datetime(x,unit='s'))
type(user['create_time'][1])# 时间序列的索引。和普通索引一样,调用.loc[row,columns]进行索引
user1 = user.set_index('create_time')
user1.loc['2022-05']
# 2022年5月-2022年7月的数据
user1.loc['2022-05':'2022-07’]user[‘create_time’].dt.month

9、重复值检查与处理

data[data.duplicated()] # 筛选重复值所在行

data[data.duplicated([‘姓名’])] # 筛选指定列存在重复项所在的行

data.drop_duplicates() # 删除重复值所在行

10、数据修改

修改列名rename()

df.rename(columns={'姓名':'名字','性别':'男女'})

修改行索引set_index()

df.set_index('id',inplace=True) #指定字段,成为索引

df.reset_index(inplace=True) #重置索引

df.drop(['index'])

修改索引名rename_axis()

# 修改索引名字 df.rename_axis('自加索引')

修改某一个值:df.iloc[0,1]='李三'

替换指定的值:

替换值(单值)replace()

将5000.0替换为4444:

替换值(多值)replace()

11、数据删除

1、删除指定行

df.drop(1)

2、删除条件行

删除id=5099.0的行

3、删除列

删除性别这一字段所在的列

4、按列号删除列

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

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

相关文章

ChatGPT4.0(中文版)国内无限制免费版(附网址)

ChatGPT,由OpenAI开发的人工智能语言模型。它是你的数字对话伙伴,无论你有何问题或需要什么帮助,它都能提供有用的信息。 经过不断的研发和更新,ChatGPT的性能和功能得到了显著提升。现在,我们将重点介绍ChatGPT的两个…

C#高级 08Json操作

1.概念 Json是存储和交换文本信息的语法。类似于XML。Json比XML更小、更快、更易解析。Json与XML一样是一种数据格式。Json是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。Json采取完全独立于语言的文本格式, 但是也使用了类似于C语言的习惯。这些特性使…

创建VLAN及VLAN间通信

任务1、任务2、任务3实验背景: 在一家微型企业中,企业的办公区域分为两个房间,一个小房间为老板办公室,一个大房间为开放办公室,财务部和销售部的员工共同使用这个办公空间。我们需要通过VLAN的划分,使老板…

3D视觉-激光三角测量法的分类

按照入射激光光束和被测物体表面法线的角度关系,一般分为直射式和斜射式两种方式。 1)直射式测量 如图所示,激光器发出的光线,经会聚透镜聚焦后垂直入射到被测物体表面上,物体移动或者其表面变化,导致入射…

elasticsearch系列四:集群常规运维

概述 在使用es中如果遇到了集群不可写入或者部分索引状态unassigned,明明写入了很多数据但是查不到等等系列问题该怎么办呢?咱们今天一起看下常用运维命令。 案例 起初我们es性能还跟得上,随着业务发展壮大,发现查询性能越来越不…

鸿蒙开发(二)- 鸿蒙DevEco3.X开发环境搭建

上篇说到,鸿蒙开发目前势头旺盛,头部大厂正在如火如荼地进行着,华为也对外宣称已经跟多个厂商达成合作。目前看来,对于前端或客户端开发人员来说,掌握下鸿蒙开发还是有些必要性的。如果你之前是从事Android开发的&…

Jackson ImmunoResearch纳米二抗(Nano Secondary Antibodies)

驼科,如羊驼和美洲驼,会产生一类独特的仅由重链组成的抗体。而抗原结合片段(Fab),也称为仅可变重链片段抗体(Variable Heavy-Chain only fragment antibodies,VHH片段),或纳米抗体,是一种新型抗体形式。凭借…

GBASE南大通用数据库提供的高可用负载均衡功能

GBASE南大通用GBase 8a ODBC 提供的高可用负载均衡功能是指,GBase 8a ODBC 会将客户 端请求的数据库集群连接平均分摊到集群所有可用的节点上。 GBASE南大通用数据库负载均衡的使用方法 GBASE南大通用GBase 8a ODBC 提供两种方式来使用高可用负载均衡。一种是配置数…

透彻掌握GIT基础使用

网址 https://learngitbranching.js.org/?localezh_CN 清屏 clear重新开始reset

Selenium框架添加CONNECT以抓取https网站

Selenium框架 Selenium是一个用于Web应用程序测试的强大工具,它提供了一系列的API,可以模拟用户在浏览器中的操作,包括点击、填写表单、导航等。在进行网络提取数据时,https网站的数据提取一直是一个技术难点。Selenium作为一个自…

改变进程优先级,Nodejs的os.setPriority()方法

改变进程优先级,Nodejs的os.setPriority()方法 os.setPriority()方法是os模块的内置应用程序编程接口,在nodejs v10.10之后的版本中有效,用于设置pid和优先级指定的进程的调度优先级。 语法: os.setPrio…

如何使用 Prometheus 监控SpringBoot系统

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享 在从零开始:使用Prometheus与Grafana搭建监控系统中,主要讲解了如何使用监控系统资源并进行告警,这节主要分享下,如何在业务系统中使用Pr…

音视频技术开发周刊 | 325

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 AI读心术震撼登顶会!模型翻译脑电波,人类思想被投屏|NeurIPS 2023 在最近举办的NeurIPS大会上,研究人员展示了当代AI更震撼…

iMazing2024免费版iOS移动设备管理软件

以自己的方式管理iPhone,让备受信赖的软件为您传输和保存音乐、消息、文件和数据。安全备份任何 iPhone、iPad 或 iPod touch。iMazing 功能强大、易于使用,称得上是 Mac 和 PC 上最好的 iOS 设备管理器。 正在为iTunes繁琐的操作发愁?设备数…

HTML+CSS+JS网页设计期末课程大作业 web课程设计 web前端开发 网页规划与设计

HTMLCSSJS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计 💥 文章目录一、🚩 网站描述二、🎌 网站介绍三、🏴 网站类型A 个人博客主题B 人物明星主题C 旅游主题D 游戏主题E 动漫主题F 美食主题G 校园主题H 企…

uniapp框架——vue3+uniFilePicker+fastapi实现文件上传(搭建ai项目第二步)

文章目录 ⭐前言💖 小程序系列文章 ⭐uni-file-picker 组件💖 绑定事件💖 uploadFile api💖 自定义上传 ⭐后端fastapi定义上传接口⭐uniapp开启本地请求代理devServer⭐前后端联调⭐总结⭐结束 ⭐前言 大家好,我是ym…

shiro1.10版本后-IniSecurityManagerFactory过期失效

1、问题概述? 今天在研究了shiro的新版本shiro1.13.0版本,发现用了很长时间的IniSecurityManagerFactory工厂失效了。 从下图中可以看出,在新版本中IniSecurityManagerFactory被打上了过期线了。 那么问题来了,新版本如何使用呢…

服务器数据恢复-raid6离线磁盘强制上线后分区打不开的数据恢复案例

服务器数据恢复环境: 服务器上有一组由12块硬盘组建的raid6磁盘阵列,raid6阵列上层有一个lun,映射到WINDOWS系统上使用,WINDOWS系统划分了一个GPT分区。 服务器故障&分析: 服务器在运行过程中突然无法访问。对服务…

Scikit-Learn线性回归(一)

Scikit-Learn线性回归一 1、线性回归概述1.1、回归1.2、线性1.3、线性回归1.4、线性回归的优缺点1.5、线性回归与逻辑回归2、线性回归的原理2.1、线性回归的定义与原理2.2、线性回归的损失函数3、Scikit-Learn线性回归3.1、Scikit-Learn库3.2、Scikit-Learn线性回归API3.3、Sci…

一起玩儿物联网人工智能小车(ESP32)——13. 用ESP32的GPIO控制智能小车运动起来(一)

摘要:本文更深入的讲述了GPIO的相关知识,并完成了导线连接工作,为下一步的软件开发做好了准备。 通用输入输出端口(GPIO:General Purpose Input/Output Port),在前面已经有了初步的介绍&#xf…