pandas 常用45个操作方法(详解)
1、query函数进行数据筛选
相当于 bool 索引
data.query("Graduate_year==2020 & Language=='Java'") df.query("Language in ['CPP','C','C#']")
pandas.DataFrame.query(self, expr, inplace = False, **kwargs) Expr 评估查询字符 inplace=False 修改数据还是修改后的副本 Kwargs 关键字 关键字
需要指定两个或多个条件进行过滤的方式
and:回在满足两个条件的所有记录
or:返回满足任意条件的所有记录
2、显示操作
pd.set_option("display.max_columns"
, None) # 显示所有的列,而不是以……显示 pd.set_option("display.max_rows"
, None) # 显示所有的行,而不是以……显示 pd.set_option("display.width"
, None) # 不自动换行显示
pd.set_option ('display.max_colwidth',500)#最大列宽50个字符,解决列宽不足导致的字体显示不完整
pd.set_option( 'display.precision',2)#浮点数保留两位小数
pd.set_option('display.float_format','{:,}'.format)#设置数据格式:逗号分隔浮点型
3、isin() 的用法
判断某列中是否含有指定字符
print(df[df["Language"].isin(["CPP", "C", "C#"])])
4、value_counts 和分组求和的区别
value_counts()不会排序,顺序会原样输出,
分组求和会改变原有的顺序
print(data.groupby("Language").count()["Nowcoder_ID"]) print(data["Language"].value_counts())
5、where 函数
DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None, errors='raise', try_cast=False)
-
cond
:条件表达式或可调用函数,用于筛选数据。如果条件为真,则保留原始数据,否则用other
参数指定的值进行替换。 -
other
:可选参数,用于替换不满足条件的元素,默认为 NaN。 -
inplace
:可选参数,表示是否在原地修改 DataFrame,默认为 False,即返回一个新的 DataFrame。如果设置为 True,则在原始 DataFrame 上进行修改。 -
axis
:可选参数,表示在哪个轴上应用条件,可以是 0 或 1。默认为 None,表示在所有轴上应用条件。 -
level
:可选参数,用于多级索引时,指定在哪个级别上应用条件。 -
errors
:可选参数,用于处理条件表达式中的错误。可以设置为 'raise'、'ignore' 或 'coerce'。 -
try_cast
:可选参数,表示是否尝试将条件表达式的结果转换为布尔类型。
# 创建示例 DataFrame import pandas as pd import numpy as np data = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]} df = pd.DataFrame(data) # 在列方向上应用条件 result = df.where(df < 3, other=np.nan, axis=1) print(result)
6、unique() 和 nunique()
#返回不同值的个数 print(data["Language"].nunique()) #返回不同值 print(data["Language"].unique())
7、reset_index()用法
reset_index()
方法是 pandas 中用于重置索引的函数。它可以将多级索引转换为默认的整数索引,并将多级索引中的标签移动到数据框的列中。
reset_index()
方法有几个常用的参数,下面是对它们的说明:
-
level
:指定要重置的索引级别的名称或级别号。如果不指定,则默认重置所有索引级别。可以传递单个级别的名称或级别号,也可以传递包含多个级别名称或级别号的列表。 -
drop
:指定是否要删除被重置的索引。如果设置为 True,则会删除被重置的索引并丢弃它们;如果设置为 False,则将被重置的索引添加为一列保留。 -
inplace
:指定是否在原始数据框上进行就地修改。如果设置为 True,则会直接修改原始数据框,而不返回新的数据框副本;如果设置为 False,则会返回一个重置索引后的新数据框副本,默认为 False。
import pandas as pd # 创建示例数据 data = {'Name': ['Alice', 'Gill', 'Bob', 'Emily', 'Carol', 'David', 'Firth'], 'Age': [30, 35, 25, 45, 35, 40, 20], 'City': ['Beijing', 'Paris', 'Beijing', 'Tokyo', 'Sydney', 'Beijing', 'Paris'], 'Gender': ['Female', 'Female', 'Male', 'Female', 'Male', 'Female', 'Male'], 'Salary': [4500, 3500, 3000, 3500, 2500, 4000, 2500]} df = pd.DataFrame(data) # 按照 'City' 和 'Gender' 列进行分组 grouped = df.groupby(['City', 'Gender']) # 对分组计算平均年龄和最大薪水 result = grouped.agg({'Age': 'mean', 'Salary': 'max'}) print(result) reseted_index = result.reset_index() print(reseted_index)
8、describle()用法
用法:DataFrame.describe(percentiles=None, include=None, exclude=None) percentiles:它是一个可选参数, 它是一个列表, 如数字的数据类型, 应在0到1之间。其默认值为[.25, .5, .75], 它返回第25、50和75个百分位数。 include:它也是一个可选参数, 在描述DataFrame时包括数据类型列表。其默认值为无。 exclude:它也是一个可选参数, 在描述DataFrame时不包括数据类型列表。其默认值为无
统计值变量说明
count:数量统计,此列共有多少有效值 mean:均值 std :标准差 min:最小值 25%:四分之一分位数 50%:二分之一分位数 75%:四分之三分位数 max:最大值
df.describe(include=‘O’) ,当输入include=['O'],会计算离散型变量的统计特征,此参数是 ‘all’ 的时候会把数值型和离散型特征的统计都进行显示。
describe()函数自动计算的字段有
1、count(非空值数)
2、unique(唯一值数)
3、top(频数最高者)
4、freq(最高频数)
9、quantitle()用法
DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation='linear')q 参数指定所需的分位数,取值范围为 0 到 1 之间的小数 axis 参数指定沿着哪个轴进行计算,默认为 0 可以计算每列的分位数 numeric_only 参数指定是否只计算数字类型的数据,默认为 True 表示只计算数字类型的数据 interpolation 参数指定插值方法,可选项包括 'linear'(默认)、'lower'、'higher'、'midpoint' 和 'nearest'。
import pandas as pddf = pd.DataFrame(np.random.randint(0, 100, size=(100, 5)), columns=['A', 'B', 'C', 'D', 'E']) q1 = df.quantile(q=0.25) q3 = df.quantile(q=0.75)print("每列数据的第一四分位数:\n", q1) print("每列数据的第三四分位数:\n", q3)
10、ptp() 函数计算极差
#计算极差 print(data[data["Level"]==7]["Achievement_value"].values.ptp())
11、计算某列中,每个值的长度
#如果没有其它字符干扰 print(data["Name"].str.len()) print(data["Name"].apply(len))
12、缺失值删除,dropna的相关参数
axis: Axis = 0, 0是行,1是列,axis: axis参数默认为0('index'),按行删除,即删除有空值的行。将axis参数修改为1或‘columns’,则按列删除,即删除有空值的列 在实际的应用中,一般不会按列删除,例如数据中的一列表示年龄,不能因为年龄有缺失值而删除所有年龄数据。 how: str = "any", any 只要含有就删除,all 是全部为 空则删除 thresh=None, thresh= n 表示保留至少含有n个非na数值的行 subset: IndexLabel = None, #指定列,指定判断缺失值的列范围,删除空值时,只判断subset指定的列(或行)的子集,其他列(或行)中的空值忽略,不处理 inplace: bool = False, #表示直接修改原DataFrame,inplace: 默认为False,返回原数据的一个副本。将inplace参数修改为True,则会修改数据本身。
14、缺失值查看
#查看每列缺失值个数 print(data.isnull().sum())# 每行有多少个缺失值 df.isnull().sum(1)# 总共有多少个缺失值 df.isnull().sum()#查看每列数据中缺失值的比例 print(data.apply(lambda x: sum(x.isnull())/len(x),axis=0))
15、缺失值填充
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs) #value:需要用什么值去填充缺失值 #axis:确定填充维度,从行开始或是从列开始 #method:填充缺失值所用的方法。 #limit:确定填充的个数,如果limit=2,则只填充两个缺失值。 #inplac
相关文章:
pandas 常用45个操作方法(详解)
1、query函数进行数据筛选 相当于 bool 索引 data.query("Graduate_year==2020 & Language==Java")df.query("Language in [CPP,C,C#]") pandas.DataFrame.query(self, expr, inplace = False, **kwargs)Expr 评估查询字符inplace=False 修改数…...

PHP判断扫码支付扫码条码支付宝微信区分
微信:用户付款码规则:18位纯数字,前缀以10、11、12、13、14、15开头 支付宝:25~30开头的长度为16~24位的数字,实际字符串长度以开发者获取的付款码长度为准 <?php /*** 判断扫码支付的方式* param string $code 扫…...

一文了解芯片测试项目和检测方法 -纳米软件
芯片检测是芯片设计、生产、制造成过程中的关键环节,检测芯片的质量、性能、功能等,以满足设计要求和市场需求,确保芯片可以长期稳定运行。芯片测试内容众多,检测方法多样,今天纳米软件将为您介绍芯片的检测项目都有哪…...

【npm 错误】:npm ERR! code ERESOLVE、npm ERR! ERESOLVE could not resolve问题
用过npm的小伙伴都会有这么一个情况出现,就是npm install /npm install xxxx 会出现改一连串的错误,如下: 解决办法: 只要在npm install后面加上--legacy-peer-deps就可以解决问题,安装插件也一样 npm install --legacy-peer-dep…...

【FastCAE源码阅读8】调用gmsh生成网格
FastCAE使用gmsh进行网格划分,划分的时候直接启动一个新的gmsh进程,个人猜测这么设计是为了规避gmsh的GPL协议风险。 进行网格划分时,其大体运行如下图: 一、Python到gmshModule模块 GUI操作到Python这步不再分析,比…...

使用LLM-Tuning实现百川和清华ChatGLM的Lora微调
LLM-Tuning项目源码: GitHub - beyondguo/LLM-Tuning: Tuning LLMs with no tears💦, sharing LLM-tools with love❤️.Tuning LLMs with no tears💦, sharing LLM-tools with love❤️. - GitHub - beyondguo/LLM-Tuning: Tuning LLMs wit…...

浏览器标签页之间的通信
前言 在开发管理后台页面的时候,会遇到这样一种需求:有一个列表页面,一个新增按钮,一个新增页面,点击新增按钮,在一个新的标签页中打开新增页面。并且,新增后要自动实时的更新列表页面的数据。…...

Semantic Kernel 学习笔记1
1. 挂代理跑通openai API 2. 无需魔法跑通Azure API 下载Semantic Kernel的github代码包到本地,主要用于方便学习python->notebooks文件夹中的内容。 1. Openai API:根据上述文件夹中的.env.example示例创建.env文件,需要填写下方两个内…...

图像二值化阈值调整——Triangle算法,Maxentropy方法
一. Triangle方法 算法描述:三角法求分割阈值最早见于Zack的论文《Automatic measurement of sister chromatid exchange frequency》主要是用于染色体的研究,该方法是使用直方图数据,基于纯几何方法来寻找最佳阈值,它的成立条件…...
监控视频片段合并完整视频|FFmpeg将多个视频片段拼接完整视频|PHP自动批量拼接合并视频
关于环境配置ffmpeg安装使用的看之前文章 哔哩哔哩缓存转码|FFmpeg将m4s文件转为mp4|PHP自动批量转码B站视频 <?php date_default_timezone_set("PRC"); header("Content-type: text/html; charsetutf-8"); set_time_limit(0);// 遍历获取文件 functi…...

client-go controller-runtime kubebuilder
背景 这半年一直做k8s相关的工作,一直接触client-go controller-runtime kubebuilder,但是很少有文章将这三个的区别说明白,直接用框架是简单,但是出了问题就是黑盒,这不符合我的理念,所以这篇文章从头说起…...
【vue 如何解决响应式丢失】
响应式丢失原因 在 Vue 中,响应式丢失通常是由于以下原因导致的: 1. 使用非响应式对象或属性:在 Vue 中,只有使用 Vue 实例的 data 对象中的属性或使用 Vue.set() 方法添加的属性才是响应式的。如果使用普通对象或属性ÿ…...

Selenium alert 弹窗处理!
页面弹窗有 3 种类型: alert(警告信息)confirm(确认信息)prompt(提示输入) 对于页面出现的 alert 弹窗,Selenium 提供如下方法: 序号方法/属性描述1accept()接受2dismis…...
有关自动化的脚本思考 python 按键 javascript
start 说来其实挺巧的,去年年中的时候,有一个同组的同事,由于工作流程需要,经常会打开某一网页,填写某些信息,然后上传特定的代码。 他有一次和我闲聊,他吐槽说,他每天的时间会被这…...

CKA认证模块②-K8S企业运维和落地实战-2
CKA认证模块②-K8S企业运维和落地实战-2 K8S常见的存储方案及具体应用场景分析 k8s存储-empty emptyDir类型的Volume是在Pod分配到Node上时被创建,Kubernetes会在Node上自动分配一个目录,因此无需指定宿主机Node上对应的目录文件。 这个目录的初始内容…...

SpectralDiff论文阅读笔记
高光谱图像分类是遥感领域的一个重要问题,在地球科学中有着广泛的应用。近年来,人们提出了大量基于深度学习的HSI分类方法。然而,现有方法处理高维、高冗余和复杂数据的能力有限,这使得捕获数据的光谱空间分布和样本之间的关系具有…...
selenium基本使用、无头浏览器(chrome、FireFox)、搜索标签
selenium基本使用 这个模块:既能发请求,又能解析,还能执行js selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行 JavaScript代码的问题 selenium 会做web方向的自动化测试appnium 会做 app方向的自动化…...

Html 引入element UI + vue3 报错Failed to resolve component: el-button
问题:Html 引入element UI vue3 ,el-button效果不出来 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><!-- import Vue before Element --> <!-- <script src"https://unpkg.com/vue2/dist…...
sen2cor安装
Sen2Cor工具安装教程-百度经验 (baidu.com)...

通付盾Web3专题 | SharkTeam:Web3安全实践与创新
在Web3领域,安全漏洞、黑客攻击已愈发成为用户和投资者重点关注的领域。如何保障加密资产的安全,Web3黑暗森林中又有哪些新的攻击模式产生,SharkTeam将从一线进行分享和讨论。 我们先来看一下2023年1月到8月的安全事件数量和损失的数据统计。…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验
2024年初,人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目(一款融合大型语言模型能力的云端AI编程IDE)时,技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力,TRAE在WayToAGI等…...