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()返回的结果类型
相关文章:
Python基础之pandas:文件读取与数据处理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、文件读取1.以pd.read_csv()为例:2.数据查看 二、数据离散化、排序1.pd.cut()离散化,以按范围加标签为例2. pd.qcut()实现离散化3.排序4.…...
基于Springboot旅游网站管理系统设计和实现
基于Springboot旅游网站管理系统设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系…...
深度解析C语言——预处理详解
对C语言有一定了解的同学,相信对预处理一定不会陌生。今天我们就来聊一聊一些预处理的相关知识。预处理是在编译之前对源文件进行简单加工的过程,主要是处理以#开头的命令,例如#include <stdio.h>、#define等。预处理是C语言的一个重要…...
idea2023.2.1 java项目-web项目创建-servlet类得创建
如何创建Java项目 1.1 方式1: 1.2 方式: 1.3 方式 如何创建web项目 方式 ----- 推荐 如何创建servlet类 复制6 中得代码 给servlet 配置一个路径 启动tomcat 成功了...
Ollama教程——入门:开启本地大型语言模型开发之旅
Ollama教程——入门:开启本地大型语言模型开发之旅 引言安装ollamamacOSWindows预览版LinuxDocker ollama的库和工具ollama-pythonollama-js 快速开始运行模型访问模型库 自定义模型从GGUF导入模型自定义提示 CLI参考创建模型拉取模型删除模型复制模型多行输入多模态…...
基于PHP的新闻管理系统(用户发布版)
有需要请加文章底部Q哦 可远程调试 基于PHP的新闻管理系统(用户发布版) 一 介绍 此新闻管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。本新闻管理系统采用用户发布新闻,管理员审核后展示模式。 技术栈&am…...
基础篇3 浅试Python爬虫爬取视频,m3u8标准的切片视频
浅试Python爬取视频 1.页面分析 使用虾米视频在线解析使用方式:https://jx.xmflv.cc/?url目标网站视频链接例如某艺的视频 原视频链接 解析结果: 1.1 F12查看页面结构 我们发现页面内容中什么都没有,video标签中的src路径也不是视频的数据。 1.2 …...
Adaboost集成学习 | Matlab实现基于BiLSTM-Adaboost双向长短期记忆神经网络结合Adaboost集成学习时间序列预测(股票价格预测)
目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Matlab实现基于BiLSTM-Adaboost双向长短期记忆神经网络结合Adaboost集成学习时间序列预测(股票价格预测) 模型设计 股票价格预测是一个具有挑战性的时间序列预测问题,可以使用深度学习模型如双向长短期记忆…...
MySQL两表联查之分组成绩第几问题
MySQL 数据库操作实践:两表联查之分组成绩第几问题 在本篇博客中,我将展示MySQL 从创建表、到插入数据,并进行一些复杂的查询操作。 1. 建立表格 首先,我们创建两个表:department(部门)和 em…...
每日一题(leetcode2952):添加硬币最小数量 初识贪心算法
这道题如果整体去思考,情况会比较复杂。因此我们考虑使用贪心算法。 1 我们可以假定一个X,认为[1,X-1]区间的金额都可以取到,不断去扩张X直到大于target。(这里为什么要用[1,X-1]而不是[1,X],总的来说是方便,潜在思想…...
[Errno 2] No such file or directory: ‘g++‘
报错解释: 这个错误表明系统试图访问名为g++的文件或目录,但没有找到。g++是GNU编译器集合(GNU Compiler Collection)中的C++编译器。如果系统中没有安装g++或者g++不在环境变量的路径中,就会出现这个错误。 解决方法: 确认g++是否已安装: 在Linux上,可以尝试运行g+…...
go的通信Channel
一、channel是什么 1.一种通信机制 channel是goroutine与goroutine之间数据通信的一种通信机制。一般都是2个g及以上一起工作。 channel与关键字range和select紧密相关。 二、channel的结构 go源码:GitHub - golang/go: The Go programming language src/runt…...
手写红黑树【数据结构】
手写红黑树【数据结构】 前言版权推荐手写红黑树一、理论知识红黑树的特征增加删除 二、手写代码初始-树结点初始-红黑树初始-遍历初始-判断红黑树是否有效查找增加-1.父为黑,直接插入增加-2. 父叔为红,颜色调换增加-3. 父红叔黑,颜色调换&am…...
[蓝桥杯练习]通电
kruskal做法(加边) #include <bits/stdc.h> using namespace std; int x[10005],y[10005],z[10005];//存储i点的x与y坐标 int bcj[10005];//并查集 struct Edge{//边 int v1,v2; double w; }edge[2000005]; int cmp(Edge a, Edge b){return a.w < b.w;} int find(i…...
安全算法 - 摘要算法
摘要算法是一种将任意长度的数据转换为固定长度字节串的算法。它具有以下特点和应用。 首先,摘要算法能够生成一个唯一且固定长度的摘要值,用于验证数据的完整性和一致性。无论输入数据有多长,生成的摘要值始终是固定长度的,且即…...
操作系统:动静态库
目录 1.动静态库 1.1.如何制作一个库 1.2.静态库的使用和管理 1.3.安装和使用库 1.4.动态库 1.4.1.动态库的实现 1.4.2.动态库与静态库的区别 1.4.3.共享动态库给系统的方法 2.动态链接 2.1.操作系统层面的动态链接 1.动静态库 静态库(.a)&…...
车载电子电器架构 —— 局部网络管理汇总
车载电子电器架构 —— 局部网络管理汇总 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…...
网络安全 | 什么是DDoS攻击?
关注WX:CodingTechWork DDoS-介绍 DoS:Denial of Service,拒绝服务。DDoS是通过大规模的网络流量使得正常流量不能访问受害者目标,是一种压垮性的网络攻击,而不是一种入侵手段。NTP网络时间协议,设备需要…...
[Godot] 3D拾取
CollisionObject3D文档 Camera3D文档 CollisionObject3D有个信号_input_event,可以用于处理3D拾取。 Camera3D也有project_position用于将屏幕空间坐标投影到3D空间。 extends Node3D#是否处于选中状态 var selected : bool false #摄像机的前向量 var front : V…...
知识融合:知识图谱构建的关键技术
目录 一、引言二、知识图谱基础2.1 知识表示三元组属性图 2.2 知识抽取实体抽取关系抽取属性抽取 三、知识融合的核心问题3.1 实体识别与链接实体识别实体链接 3.2 重复实体合并方法示例 3.3 关系融合挑战方法示例 四、知识融合技术深度解析4.1 基于规则的方法规则设计原则规则…...
外贸建站:WordPress搭建外贸独立站零基础自建站完整教程(2024)
对于做外贸来说,拥有自己的外贸独立网站真的非常重要。在外贸领域,如今各平台竞争激烈,规则多,成本高,价格战、政策变化快,还存在封店风险等等因素。在这种情况下,拥有外贸独立站就能很好规避上…...
【教程】Kotlin语言学习笔记(五)——Lambda表达式与条件控制
写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【Kotlin语言学习】系列文章 第一章 《认识Kotlin》 第二章 《数据类型》 第三章 《数据容器》 第四章 《方法》 第五章 《L…...
C++的并发世界(三)——线程对象生命周期
0.案例代码 先看下面一个例子: #include <iostream> #include <thread>void ThreadMain() {std::cout << "begin sub thread:" << std::this_thread::get_id()<<std::endl;for (int i 0; i < 10; i){std::cout <&…...
SAD法(附python实现)和Siamese神经网络计算图像的视差图
1 视差图 视差图:以左视图视差图为例,在像素位置p的视差值等于该像素在右图上的匹配点的列坐标减去其在左图上的列坐标 视差图和深度图: z f b d z \frac{fb}{d} zdfb 其中 d d d 是视差, f f f 是焦距, b b…...
基于DWT(离散小波变换)的图像加密水印算法,Matlab实现
博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…...
【威胁情报综述阅读3】Cyber Threat Intelligence Mining for Proactive Cybersecurity Defense
【威胁情报综述阅读1】Cyber Threat Intelligence Mining for Proactive Cybersecurity Defense: A Survey and New Perspectives 写在最前面一、介绍二、网络威胁情报挖掘方法和分类A. 研究方法1) 第 1 步 - 网络场景分析:2) 第 2 步 - 数据…...
在编程中使用中文到底该不该??
看到知乎上有个热门问题,为什么很多人反对中文在编程中的使用? 这个问题有几百万的浏览热度,其中排名第一的回答非常简洁,我深以为然: 在国内做开发,用中文写注释、写文档,是非常好的习惯&…...
PyQt6从入门到放弃
PyQt6从入门到放弃 安装PyQt6 pip install PyQt6# 查看QT和PyQT的版本 from PyQt6.QtCore import QT_VERSION_STR from PyQt6.QtCore import PYQT_VERSION_STR print(QT_VERSION_STR) print(PYQT_VERSION_STR)PyQt6模块 PyQt6类由一系列模块组成包括QtCore、QtGui、QtWidgets…...
PhpWord导入试卷
规定word导入格式 1、[单选题][2024][一般]题目1 A.选项1 B.选项2 C.选项3 D.选项4 答案:D 试题图片(上传多媒体图片): 分数:2 答案解析: 2、[多选题][2024][困难]题目2 A.选项1 B.选项2 C.选项3 D.选项4 E…...
C# 运算符重载 之前的小总结
C# 中支持运算符重载,所谓运算符重载就是我们可以使用自定义类型来重新定义 C# 中大多数运算符的功能。运算符重载需要通过 operator 关键字后跟运算符的形式来定义的,我们可以将被重新定义的运算符看作是具有特殊名称的函数,与其他函数一样&…...
泊头那家做网站/优化关键词有哪些方法
一、数值类型 1、整型 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT 我们完全没必要为整数类型指定显示宽度,使用默认的就可以了 默认的显示宽度,都是在最大值的基础上加1 2、浮点型 浮点型:FLOAT DOUBLE 定点数:D…...
极酷wordpress/项目推广平台排行榜
RainyView 项目地址:samlss/RainyView 简介:A rainy rainy rainy view. ( ˘•灬•˘ ) 更多:作者 提 Bug 标签: A rainy rainy rainy view. ( ˘•灬•˘ ) More 中文...
帝国网站模版/百度广告投放电话
当今,Spring Boot成为了Java开发中最受欢迎的技术之一。它是一个快速,开箱即用的开发框架,为Java开发人员提供了一个有效的方法来构建和运行应用程序。在本文中,我们将探讨Spring Boot的一些重要特性和它的优势。 Spring Boot的特…...
网站劫持必须做系统嘛/大数据精准客户
python将print的内容输出到txt文件 - 子唯 - 博客园想起昨天天调试某程序时,打印出的内容太多不方便看,在网上找了个法子将其输入到文件。 import sysclass Logger(object): def __init__(self, fileN&https://www.cnblogs.com/henry2019/p/14313948…...
上海 企业网站建设/网站分析工具
有两种观点,一种观点是必须备案,另外一种观点是无需备案,这两种说法都有片面性,具体来讲:1:百度已经官方声明过,未备案的域名,其网站在搜索引擎中的关键词排名不会受到影响ÿ…...
怎么登录企业网站/潍坊网站建设
线程池的概念 线程池是管理线程的一个工具,通过线程的重复使用从而降低开销,提高效率。因为创建和销毁线程都很耗费时间 ThreadPoolExecutor 创建线程池需要用到一个核心类就是ThreadPoolExecutor。 先来看构造函数: /*** Creates a new {cod…...