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

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

目录

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())

相关文章:

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

目录 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()函数…...

国庆小练习

一、二、三 一、 创建一个双向链表&#xff0c; 将26个英文字母通过头插的方式插入到链表中 通过尾删的方式将数据读取出来并删除。main.c #include <my_head.h> #include "dblink.h"int main(int argc, const char *argv[]) {dblink *h create_head();for…...

springboot单体项目如何拆分成微服务

要将一个Spring Boot单体项目拆分成微服务&#xff0c;可以按照以下步骤进行操作&#xff1a; 识别业务域&#xff1a;首先&#xff0c;需要对单体项目进行业务域的划分。将项目中的功能按照业务领域进行分类&#xff0c;每个业务领域可以成为一个独立的微服务。 定义服务接口…...

解决recovery页面反转的问题

1.前言 在android 10.0的系统rom定制化开发工作中&#xff0c;在系统中recoverv的页面也是相关重要的一部分&#xff0c;在系统recovery ta升级等功能&#xff0c;都是需要recoverv功能的&#xff0c;在某些产品定制化中 在recovery的时候&#xff0c;发现居然旋转了180度&…...

如何使用nuScenes数据集格式的单帧数据推理(以DETR3D为例)

【请尊重原创&#xff01;转载和引用文章内容务必注明出处&#xff01;未经许可上传到某文库或其他收费阅读/下载网站赚钱的必追究责任&#xff01;】 无论是mmdetection3D还是OpenPCDet都只有使用数据集(使用哪个数据集由配置文件里指定)训练和测试的代码&#xff0c;没有使用…...

大语言模型之十三 LLama2中文推理

在《大语言模型之十二 SentencePiece扩充LLama2中文词汇》一文中已经扩充好了中文词汇表&#xff0c;接下来就是使用整理的中文语料对模型进行预训练了。这里先跳过预训练环节。先试用已经训练好的模型&#xff0c;看看如何推理。 合并模型 这一步骤会合并LoRA权重&#xff0…...

iOS AVAudioSession 详解

iOS AVAudioSession 详解 - 简书 默认没有options&#xff0c;category 7种即可满足条件 - (BOOL)setCategory:(AVAudioSessionCategory)category error:(NSError **)outError API_AVAILABLE(ios(3.0), watchos(2.0), tvos(9.0)) API_UNAVAILABLE(macos); 有options&#xff…...

26-网络通信

网络通信 什么是网络编程&#xff1f; 可以让设备中的程序与网络上其他设备中的程序进行数据交互&#xff08;实现网络通信的&#xff09;。 java.net.包下提供了网络编程的解决方案&#xff01; 基本的通信架构有2种形式&#xff1a;CS架构&#xff08; Client客户端/Server服…...

嵌入式Linux应用开发-基础知识-第十九章驱动程序基石③

嵌入式Linux应用开发-基础知识-第十九章驱动程序基石③ 第十九章 驱动程序基石③19.5 定时器19.5.1 内核函数19.5.2 定时器时间单位19.5.3 使用定时器处理按键抖动19.5.4 现场编程、上机19.5.5 深入研究&#xff1a;定时器的内部机制19.5.6 深入研究&#xff1a;找到系统滴答 1…...

一文拿捏SpringMVC的调用流程

SpringMVC的调用流程 1.核心元素&#xff1a; DispatcherServlet(前端控制器)HandlerMapping(处理器映射器)HandlerAdapter(处理器适配器) ---> Handler(处理器)ViewResolver(视图解析器 )---> view(视图) 2.调用流程 用户发送请求到前端控制器前端控制器接收用户请求…...

一文详解 JDK1.8 的 Lambda、Stream、LocalDateTime

Lambda Lambda介绍 Lambda 表达式(lambda expression)是一个匿名函数&#xff0c;Lambda表达式基于数学中的λ演算得名&#xff0c;直接对应于其中的lambda抽象(lambda abstraction)&#xff0c;是一个匿名函数&#xff0c;即没有函数名的函数。 Lambda表达式的结构 一个 Lamb…...

WebSocket实战之二协议分析

一、前言 上一篇 WebSocket实战之一 讲了WebSocket一个极简例子和基础的API的介绍&#xff0c;这一篇来分析一下WebSocket的协议&#xff0c;学习网络协议最好的方式就是抓包分析一下什么就都明白了。 二、WebSocket协议 本想盗一张网络图&#xff0c;后来想想不太好&#x…...

LeetCode //C - 208. Implement Trie (Prefix Tree)

208. Implement Trie (Prefix Tree) A trie (pronounced as “try”) or prefix tree is a tree data structure used to efficiently store and retrieve keys in a dataset of strings. There are various applications of this data structure, such as autocomplete and s…...

【Python】time模块和datetime模块的部分函数说明

时间戳与日期 在说到这俩模块之前&#xff0c;首先先明确几个概念&#xff1a; 时间戳是个很单纯的东西&#xff0c;没有“时区”一说&#xff0c;因为时间戳本质上是经过的时间。日常生活中接触到的“日期”、“某点某时某分”准确的说是时间点&#xff0c;都是有时区概念的…...

Python 无废话-基础知识元组Tuple详讲

“元组 Tuple”是一个有序、不可变的序列集合&#xff0c;元组的元素可以包含任意类型的数据&#xff0c;如整数、浮点数、字符串等&#xff0c;用()表示&#xff0c;如下示例&#xff1a; 元组特征 1) 元组中的各个元素&#xff0c;可以具有不相同的数据类型&#xff0c;如 T…...

【Win】Microsoft Spy++学习笔记

参考资料 《用VisualStudio\Spy查窗口句柄&#xff0c;监控窗口消息》 1. 安装 Spy是VS中的工具&#xff0c;所以直接安装VS就可以了&#xff1b; 2. 检查应用程序架构 ChatGPT-Bing: 对于窗口应用程序分析&#xff0c;确定应用程序是32位还是64位是很重要的&#xff0c;因…...

如何解决版本不兼容Jar包冲突问题

如何解决版本不兼容Jar包冲突问题 引言 “老婆”和“妈妈”同时掉进水里&#xff0c;先救谁&#xff1f; 常言道&#xff1a;编码五分钟&#xff0c;解冲突两小时。作为Java开发来说&#xff0c;第一眼见到ClassNotFoundException、 NoSuchMethodException这些异常来说&…...

数据结构—归并排序-C语言实现

引言&#xff1a;归并排序跟快速排序一样&#xff0c;都运用到了分治的算法&#xff0c;但是归并排序是一种稳定的算法&#xff0c;同时也具备高效&#xff0c;其时间复杂度为O(N*logN) 算法图解&#xff1a; 然后开始归并&#xff1a; 就是这个思想&#xff0c;拆成最小子问题…...

Multiple CORS header ‘Access-Control-Allow-Origin‘ not allowed

今天在修改天天生鲜超市项目的时候&#xff0c;因为使用了前后端分离模式&#xff0c;前端通过网关统一转发请求到后端服务&#xff0c;但是第一次使用就遇到了问题&#xff0c;比如跨域问题&#xff1a; 但是&#xff0c;其实网关里是有配置跨域的&#xff0c;只是忘了把前端项…...

msvcp100.dll丢失怎样修复,msvcp100.dll丢失问题全面解析

msvcp100.dll是一个动态链接库文件&#xff0c;属于 Microsoft Visual C Redistributable 的一个组件。它包含了 C 运行时库&#xff0c;这些库在运行程序时会被加载到内存中。msvcp100.dll文件的主要作用是为基于 Visual C 编写的程序提供必要的运行时支持。 当您运行一个基于…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

Vue3 PC端 UI组件库我更推荐Naive UI

一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用&#xff0c;前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率&#xff0c;还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库&#xff08;Naive UI、Element …...