Python与数据分析--Pandas操作进阶

news2024/11/25 13:24:33

目录

1.文件读取方式

1.1.绝对路径读取文件

1.2.相对路径读取文件

2.列表数据操作

2.1.列索引指定

2.2.代码数据对齐

3.创建新CSV文件

4.缺失值处理

4.1.缺失值创建

4.2.缺失值检索

4.3.缺失值查询

 4.3.1.isnull()函数判断

 4.3.2.notnull()函数判断

4.3.3.any()函数搭配寻找

4.3.4. 具体寻找缺失索引

4.4.缺失值处理

4.4.1.缺失值剔除

4.4.2.缺失值填充

4.4.2.1.按常数填充

4.4.2.2.按指定填充

4.4.2.3.按前数填充

4.4.2.4.按后数填充

4.4.2.5.按统计数据填充


1.文件读取方式

绝对路径:绝对路径是指文件在硬盘上真正存在的路径,就是相当于从计算机根目录开始出发一直搜索到文档为止的目录信息.
相对路径:相对路径非常简单,就是需要提取的文件就是相对于当前目标文件位置。
EXAMPLE:
1.pop_path = r"C:\Users\Zeng Zhong Yan\Desktop\py.vs\python学习\population.csv"这个就是绝对路径,从根目录开始.

2.pop_path = r'population.csv'这个就是相对路径,这个文件在文件夹里面,只需要直接提取出来即可。

1.1.绝对路径读取文件

#以具体路径的形式读取文件
pop_path = r"C:\Users\Zeng Zhong Yan\Desktop\py.vs\python学习\population.csv"#前面一定要加个r
population = pd.read_csv(pop_path, encoding='gbk',skiprows=[0, 1, 8, 9])
population

1.2.相对路径读取文件

#将文件放入同文件夹中,直接读取
pop_path = r'population.csv'
pop = pd.read_csv(pop_path, encoding='gbk',skiprows=[0, 1, 8, 9])
pop

2.列表数据操作

2.1.列索引指定

#将某一列当作行索引
pop = pd.read_csv(pop_path, 
                 encoding='gbk',
                 skiprows=[0, 1, 8, 9], 
                 index_col='指标')
pop.index.name = None
pop

2.2.代码数据对齐

#代码对齐
pop = pd.read_csv(pop_path, encoding='gbk',skiprows=[0, 1, 8, 9], index_col='指标')
pop.index.name = None
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.max_columns', None) 
pop

3.创建新CSV文件

#读取数据
#读取2019-2014年的人口并且创建一个对应的csv文件.
pop2 = pop.iloc[:, 0:6]
pop2.to_csv('pop2.csv', encoding='gbk')

4.缺失值处理

4.1.缺失值创建

#缺失值处理
np.random.seed(3)
grades = pd.DataFrame(np.random.randint(60, 100, size=(4, 3)), 
                    index=['Ann', 'Bob', 'Cindy', 'Lee'], 
                    columns=['Python', 'C', 'Java'])
#np.nan/None创建确实值
grades.loc['Ann', 'C'] = np.nan
grades.loc['Cindy', 'Python'] = None
grades

4.2.缺失值检索

#发现检索缺失值
grades.info()
#查看对应的缺失值 3 non-null表示 
#Python/C各有一个缺失值

4.3.缺失值查询

Pandas有两种发现缺失值的方法:isnull和notnull
isnull(): Series.isnull()、DataFrame.isnull()
 4.3.1.isnull()函数判断
"""
元素级别的判断---把DataFrame或Series所有元素的位置都列
出来,元素为空或者NA返回True,否则返回False
"""
grades.isnull()
 4.3.2.notnull()函数判断
"""
和isnull类似,区别是notnull的判断依据相反,即缺失值返回
False,非缺失值返回True
"""
grades.notnull()
4.3.3.any()函数搭配寻找
#any()函数
"""
1.isnull()和any函数搭配:Series.any()、DataFrame.any()
2.和Numpy的any函数类似,统计Series或DataFrame中是否存在True,若存在,返回True,否则返回False
 2.1.默认参数axis=0,即按列统计
 2.2.调用DF.isull( ).any( ),如果某一列中有缺失值,则返回值中该列对应值为True
"""
grades.isnull().any()
#如结果所示,Java没有缺失值,显示为True C和Python都有缺失值,显示为False
4.3.4. 具体寻找缺失索引
#搜寻nan的信息
grades.index[grades.isnull().any(axis=1)]#按行搜索,index[]花式搜索

4.4.缺失值处理

4.4.1.缺失值剔除
#处理缺失值:
"""
Pandas剔除缺失值的方法-DataFrame.dropna()
  默认axis=0,剔除包含缺失值的整行数据
"""
grades.dropna()
4.4.2.缺失值填充
#填充缺失值
#数据是宝贵的,一般情况只要数据缺失比例不高,尽量不要剔除缺失值,而是填充缺失值
"""
1.填充缺失值的方法:Series.fillna(),DataFrame.fillna()
2.DataFrame.fillna(value=None, method=None,axis=None, inplace=False)
 2.1.value: 填充的值---用常数替代缺失值
 2.2.method:填充方式---{ ‘bfill’, 'ffill', None}
 2.3.ffill : 使用前一个值来填充缺失值
 2.4.bfill : 使用后一个值来填充缺失值
"""
4.4.2.1.按常数填充
#全部填充0
grades.fillna(0)
4.4.2.2.按指定填充
#按照自己的意愿填充
grades.fillna({'Python':80,'C':60})
4.4.2.3.按前数填充
#分别采用ffill和bfill方式对dataFrame缺失值填充
#ffill参考前一个
grades.fillna(method='ffill')#默认axis=0 按列来
grades.fillna(method='ffill',axis=1)#也可以指定
4.4.2.4.按后数填充
#bfill参考后一个
grades.fillna(method='bfill')#默认axis=0 按列来
grades.fillna(method='bfill',axis=1)#也可以指
4.4.2.5.按统计数据填充
#利用某些统计数据进行填充
grades['C'].fillna(grades['C'].mean())

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据集笔记:2015上海地铁一卡通数据

数据地址:上海地铁数据_免费高速下载|百度网盘-分享无限制 (baidu.com) 数据介绍 上海2015年几天的地铁一卡通出入站信息 卡号、交易日期、交易时间、公交线路/地铁站点中文名称、行业名称(公交、地铁、出租、轮渡、PR停车场)、交易金额、交易性质(非优惠、优惠、…

3种Renko图表形态FPmarkets3秒轻松判断价格走势

Renko图表形态在交易中的应用并不逊色于其他技术分析方法。相较于普通的烛台图表,使用Renko图表时,有些经典模式更容易被发现和识别,FPmarkets总结这些模式包括: 首先是头和肩膀形态。这是一种价格反转形态,由两个较小…

【软件测试】软件缺陷报告如何编写

废话不多说,三张图说明 软件缺陷报告如何编写 以及 报告的跟踪流程 软件缺陷报告格式 软件缺陷报告内容说明 缺陷状态 - 分为 新建、打开、修复、关闭 - 新建 - 测试人员第一次发现缺陷 - 打开 - 测试将报告交给开发,开发确认缺陷,准备动手…

threejs中模型自定义路线移动

threejs中模型自定义路线移动 生命不息,学习不止 基于r95Threejs版本 此例子中:包括背景设置:天空之盒。 模型的引用:小车和整体 glb模型引用 路线设置(因线line2无法设置宽度,所以选择了用管道,当然也可用点成面&…

MySQL 索引介绍和最佳实践

目录 一、前言二、索引类型1.1 主键索引(PRIMARY KEY)1.2 唯一索引(UNIQUE)1.3 普通索引(NORMAL)1.3.1 单列普通索引1.3.2 单列前缀普通索引1.3.3 多列普通索引1.3.4 多列前缀普通索引 1.4 空间索引&#x…

商场做小程序商城的作用是什么?

商场是众多商家聚集在一起的购物公共场所,大商场也往往入驻着众多行业商家,是每个城市重要的组成部分。 随着互联网电商深入及客户消费行为改变,不少商场如今的客流量非常有限,甚至可以说是员工比客人多,这就导致撤店…

三相Vienna整流器电流畸变的抑制方法

该博客参考丁文龙的博士论文《低成本充电系统高性能多端口Vienna整流器关键控制策略研究》,他的博士论文深入浅出,分析透彻。感谢师妹Miss Young提供的技术指导,她是一位优秀的电力电子工程师,祝她事业顺利,身体健康。…

【教学类-06-06】20230905数字题目随便玩( 加减法、分合、比大小,纸张消耗)

背景需求: 3年前第一次设计加减法题目时,打印了一大堆加减法、数字分合、比大小的纸张。太多了,以至于三年后整理素材库,发现还有很多这样的纸片。这些20以内、50以内的题目难度大、题量多,完全不适合幼儿园孩子做&am…

Linux基础命令汇总

用户管理 su 切换用户:su 用户名 logname 显示当前用户的登录用户名:logname useradd 创建用户:useradd 用户名创建用户时指定用户的主组:useradd -g 组名 用户名 usermod 添加附属组:usermod -G 组…

基于 Python+DenseNet121 算法模型实现一个图像分类识别系统

项目展示 一、介绍 DenseNet(Densely Connected Convolutional Networks)是一种卷积神经网络(CNN)架构,2017年由Gao Huang等人提出。该网络的核心思想是密集连接,即每一层都接收其前面所有层的输出作为输…

CISSP学习笔记:安全脆弱性、威胁和对策

第九章 安全脆弱性、威胁和对策 9.1 评估和缓解安全脆弱性 9.1 硬件 处理器执行类型 多任务处理: 同时处理两个或更多任务多处理: 利用多个处理器完成一个应用程序的处理能力多程序设计:通过操作系统对单个处理器上的两个任务进行协调&…

AHH HackerHouse @Move大理站完美谢幕

Antalpha HackerHouse Move 大理站于2023年9月23日在面包树举办了Final DemoDay,这也代表着为期21天的 HackerHouse 活动完美谢幕。 自从9月3日开始,整整21天的共居时间里,我们从个体逐渐融汇成小团队,最终成为了一个紧密团结的大…

新手教程,蛋糕小程序的搭建流程一网打尽

作为一名新手,想要搭建一个蛋糕小程序可能会觉得有些困惑。但是,不用担心!今天我将为大家详细介绍蛋糕小程序的搭建流程,并带大家一步步完成。 首先,我们需要登录乔拓云网的后台。在登录成功后,点击进入商城…

OCI 发布了容器运行时和镜像规范!

7 月 19 日是开放容器计划Open Container Initiative(OCI)的一个重要里程碑,OCI 发布了容器运行时和镜像规范的 1.0 版本,而 Docker 在这过去两年中一直充当着推动和引领的核心角色。 我们的目标是为社区、客户以及更广泛的容器行…

医疗小程序开发:技术门槛高?

随着移动互联网的普及,医疗行业也逐渐转向线上。医疗小程序开发成为了很多企业和医疗机构关注的焦点。但是,对于一些技术小白来说,可能会觉得医疗小程序开发技术门槛高,无从下手。实际上,使用乔拓云平台进入后台&#…

《Python趣味工具》——ppt的操作(刷题版)

前面我们对PPT进行了一定的操作,并将其中的文字提取到了word文档中。现在就让我们来刷几道题巩固巩固吧! 文章目录 1. 查看PPT(上)2. 查看PPT(中)3. 查看PPT(下)4. PPT的页码5. 大学…

KUKA机器人通过3点法设置工作台基坐标系的具体方法

KUKA机器人通过3点法设置工作台基坐标系的具体方法 具体方法和步骤可参考以下内容: 进入主菜单界面,依次选择“投入运行”—“测量”—基坐标,选择“3点法”, 在系统弹出的基坐标编辑界面,给基座标编号为3,命名为table1,然后单击“继续”按钮,进行下一步操作, 在弹出的…

【论文极速读】Prompt Tuning——一种高效的LLM模型下游任务适配方式

【论文极速读】Prompt Tuning——一种高效的LLM模型下游任务适配方式 FesianXu 20230928 at Baidu Search Team 前言 Prompt Tuning是一种PEFT方法(Parameter-Efficient FineTune),旨在以高效的方式对LLM模型进行下游任务适配,本…

车联网时代,能链车联凭什么成为“关键先生”?

又到国庆长假,许多人开启远途旅行,高速路上一如既往的拥堵。在密密麻麻的汽车中,新能源汽车变得越来越多。 事实上,新能源汽车的热潮,已经成为不可抵挡的趋势。据中国乘联会的最新数据,今年中国新能源乘用…

USB TypeC接口说明

USB TypeC 拥有诸多优点:双面可插不担心正反、可做USB/雷电高速传输载体,支持 PD快充、音频设备、HDMI传输、调试模式等诸多功能。 市面上的其他USB接口和充电接口在逐步被TypeC替代,可以预见的是,TypeC作为一种多兼容性接口,其未来会具有非常长的生命周期。 本文主要介…