Python-pandas-操作Excel文件(读取数据/写入数据)及Excel表格列名操作详细分享
Python-pandas-操作Excel文件(读取数据/写入数据)
提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是pandas的使用语法。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】:每个知识点,都是写出代码和运行结果且前后关联上的去分析和说明(能大量节约您的时间)。
所有文章都不会直接把代码放那里,让您自己去看去理解。我希望我的内容对您有用而努力~
python语法-pandas第三节-附 :本小节是 DataFrame全系列分享(使用.特点.说明.外部文件数据.取值.功能函数.统计函数)的 Excel表格文件操作:读取数据及写入数据
详细的 DataFrame:
DataFrame全系列分享(数据结构.使用.特点.说明.外部文件数据.取值.功能函数.统计函数)
链接: DataFrame全系列分享【上榜文章】
【上榜文章】一文搞定,非常详细的Python-Pandas - DataFrame全系列分享。大量案例且晦涩难懂的有大白话解释。详细的扩展内容也额外写了其他更加细节全面的文章链接在里面,来保证DataFrame的全部内容,本文就是其中一个扩展读写数据Excel篇
文章目录
- Python-pandas-操作Excel文件(读取数据/写入数据)
- 前言
- 一、读取数据 read_excel()
- 二、写入数据 to_excel()
- 多个表单 ExcelWriter()
- 三、加载 Excel 文件 ExcelFile()
- 四、多个 DataFrame 到同一Excel .ExcelWriter()
- 总结
前言
pandas 提供了丰富的 Excel 表格文件的操作功能,帮助我们方便地读取和写入 .xls 和 .xlsx 文件
它也支持多表单、索引、列选择等复杂操作,是数据分析中必备的工具。
快速预览:
pd.read_excel() 读取 Excel 文件,返回 DataFrame
DataFrame.to_excel() 将 DataFrame 写入 Excel 文件
pd.ExcelFile() 加载 Excel 文件并访问多个表单
pd.ExcelWriter() 写入多个 DataFrame 到同一 Excel 文件的不同表单
一、读取数据 read_excel()
方法参数:
pandas.read_excel(path, sheet_name=0, *, header=0, names=None, index_col=None, usecols=None, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, parse_dates=False, date_parser=<no_default>, date_format=None, thousands=None, decimal=‘.’, comment=None, skipfooter=0, storage_options=None, dtype_backend=<no_default>, engine_kwargs=None)
path:这是必需的参数,指定了要读取的 Excel 文件的路径或文件对象。
sheet_name=0:指定要读取的工作表名称或索引。默认为0,即第一个工作表。
header=0:指定用作列名的行。默认为0,即第一行。
names=None:用于指定列名的列表。如果提供,将覆盖文件中的列名。
index_col=None:指定用作行索引的列。可以是列的名称或数字。
usecols=None:指定要读取的列。可以是列名的列表或列索引的列表。
dtype=None:指定列的数据类型。可以是字典格式,键为列名,值为数据类型。
engine=None:指定解析引擎。默认为None,pandas 会自动选择。
converters=None:用于转换数据的函数字典。
true_values=None:指定应该被视为布尔值True的值。
false_values=None:指定应该被视为布尔值False的值。
skiprows=None:指定要跳过的行数或要跳过的行的列表。
nrows=None:指定要读取的行数。
na_values=None:指定应该被视为缺失值的值。
keep_default_na=True:指定是否要将默认的缺失值(例如NaN)解析为NA。
na_filter=True:指定是否要将数据转换为NA。
verbose=False:指定是否要输出详细的进度信息。
parse_dates=False:指定是否要解析日期。
date_parser=<no_default>:用于解析日期的函数。
date_format=None:指定日期的格式。
thousands=None:指定千位分隔符。
decimal=‘.’:指定小数点字符。
comment=None:指定注释字符。
skipfooter=0:指定要跳过的文件末尾的行数。
storage_options=None:用于云存储的参数字典。
dtype_backend=<no_default>:指定数据类型后端。
engine_kwargs=None:传递给引擎的额外参数字典。
其实平时操作Excel并不需要写全这么多参数,后续遇到对应的问题,来查阅参数即可
准备数据,我是在桌面创建的表格,写了一些数据后又放到开发工具里面
import pandas as pd#代码在Excel文件的同层级位置(直接写名字即可),也可以指定D盘E盘的某个excel。这里没有演示
df = pd.read_excel('bbz__pandas.xlsx')
print(df)#读取Excel并生成DataFrame:
报错:ImportError: Missing optional dependency ‘openpyxl’. Use pip or conda to install openpyxl.
安装一个 openpyxl的包就好了
pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple
pip命令安装 并指定国内镜像源地址,会安装快一点
# 读取指定表单的内容(表单名称)
#就是这个Excel文件,左下角有很多很多个表单,sheet_name指定读取哪一个
df = pd.read_excel('data.xlsx', sheet_name='表单名字')
print(df)# 读取多个表单,返回一个字典
#因为多个表单里面的列名可能不一致,所以方法返回的是字典。
#然后通过字典生成DataFrame的语法就可以合并列,或者指定不同的列(本文最开始链接有 字典==>DataFrame)
dfs = pd.read_excel('data.xlsx', sheet_name=['Sheet1', 'Sheet2'])
print(dfs)# 自定义列名并跳过前两行
#这里自定义的列名是DataFrame的列索引名字,当前指定的是ABC
#如果Excel前n行是合并标题,就跳过。当前随机写的两行
df = pd.read_excel('data.xlsx', header=None, names=['A', 'B', 'C'], skiprows=2)
print(df)
二、写入数据 to_excel()
to_excel() 方法用于将 DataFrame 写入 Excel 文件,支持 .xls 和 .xlsx 格式。
方法参数:
DataFrame.to_excel(excel_writer, *, sheet_name=‘Sheet1’, na_rep=‘’, float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, inf_rep=‘inf’, freeze_panes=None, storage_options=None, engine_kwargs=None)
excel_writer:这是必需的参数,指定了要写入的 Excel 文件路径或文件对象。
sheet_name=‘Sheet1’:指定写入的工作表名称,默认为 ‘Sheet1’。
na_rep=‘’:指定在 Excel 文件中表示缺失值(NaN)的字符串,默认为空字符串。
float_format=None:指定浮点数的格式。如果为 None,则使用 Excel 的默认格式。
columns=None:指定要写入的列。如果为 None,则写入所有列。
header=True:指定是否写入列名作为第一行。如果为 False,则不写入列名。
index=True:指定是否写入索引作为第一列。如果为 False,则不写入索引。
index_label=None:指定索引列的标签。如果为 None,则不写入索引标签。
startrow=0:指定开始写入的行号,默认从第0行开始。
startcol=0:指定开始写入的列号,默认从第0列开始。
engine=None:指定写入 Excel 文件时使用的引擎,默认为 None,pandas 会自动选择。
merge_cells=True:指定是否合并单元格。如果为 True,则合并具有相同值的单元格。
inf_rep=‘inf’:指定在 Excel 文件中表示无穷大值的字符串,默认为 ‘inf’。
freeze_panes=None:指定冻结窗格的位置。如果为 None,则不冻结窗格。
storage_options=None:用于云存储的参数字典。
engine_kwargs=None:传递给引擎的额外参数字典。
import pandas as pd# 创建一个简单的 DataFrame
df = pd.DataFrame({
'name': ['bangbangzhi', 'hello', 'python', 'what'],'age': [25, 30, 35, 40],'city': ['chengdu', 'beijing', 'shanghai', 'tianjin']
})# 将 DataFrame 写入 Excel 文件,写入 'sheet1' 表单
df.to_excel('output.xlsx', sheet_name='sheet1', index=False)
运行代码,不在控制台看。在左边代码文件同层级位置查看。它会生成一个新的文件:output.xlsx
多个表单 ExcelWriter()
# 写入多个表单,使用 ExcelWriter
with pd.ExcelWriter('output.xlsx') as writer:
df.to_excel(writer, sheet_name='sheet1', index=False)
df.to_excel(writer, sheet_name='sheet2', index=False)
#这个output.xlsx的文件会有两个表单,分别是sheet1和sheet2#就是Excel 文件左下角那里,平时点击+多一个表
三、加载 Excel 文件 ExcelFile()
pd.ExcelFile(‘data.xlsx’) 就是可以 先看看这个Excel 文件
方法参数:
sheet_names 返回文件中所有表单的名称列表
parse(sheet_name) 解析指定表单并返回一个 DataFrame
close() 关闭文件,以释放资源
import pandas as pd# 使用 ExcelFile 加载 Excel 文件
excel_file = pd.ExcelFile('data.xlsx')# 查看所有表单的名称
print(excel_file.sheet_names)# 读取指定的表单
df = excel_file.parse('Sheet1')
print(df)# 关闭文件
excel_file.close()
四、多个 DataFrame 到同一Excel .ExcelWriter()
刚刚其实已经用过,它用于将 DataFrame 或 Series 对象写入 Excel 文件。使用 ExcelWriter,可以在一个 Excel 文件中写入多个工作表,并且可以更灵活地控制写入过程。
pandas.ExcelWriter(path, engine=None, date_format=None, datetime_format=None, mode=‘w’, storage_options=None, if_sheet_exists=None, engine_kwargs=None)
方法参数:
path:这是必需的参数,指定了要写入的 Excel 文件的路径、URL 或文件对象。可以是本地文件路径、远程存储路径(如 S3)、URL 链接或已打开的文件对象。
engine:这是一个可选参数,用于指定写入 Excel 文件的引擎。如果为 None,则 pandas 会自动选择一个可用的引擎(默认优先选择 openpyxl,如果不可用则选择其他可用引擎)。常见的引擎包括 ‘openpyxl’(用于 .xlsx 文件)、‘xlsxwriter’(提供高级格式化和图表功能)、‘odf’(用于 OpenDocument 格式如 .ods)等。
date_format:这是一个可选参数,指定写入 Excel 文件中日期的格式字符串,例如 “YYYY-MM-DD”。
datetime_format:这是一个可选参数,指定写入 Excel 文件中日期时间对象的格式字符串,例如 “YYYY-MM-DD HH:MM:SS”。
mode:这是一个可选参数,默认为 ‘w’,表示写入模式。如果设置为 ‘a’,则表示追加模式,向现有文件中添加数据(仅支持部分引擎,如 openpyxl)。
storage_options:这是一个可选参数,用于指定与存储后端连接的额外选项,例如认证信息、访问权限等,适用于写入远程存储(如 S3、GCS)。
if_sheet_exists:这是一个可选参数,默认为 ‘error’,指定如果工作表已经存在时的行为。选项包括 ‘error’(抛出错误)、‘new’(创建一个新工作表)、‘replace’(替换现有工作表的内容)、‘overlay’(在现有工作表上覆盖写入)。
engine_kwargs:这是一个可选参数,用于传递给引擎的其他关键字参数。这些参数会传递给相应引擎的函数,例如 xlsxwriter.Workbook(file, **engine_kwargs) 或 openpyxl.Workbook(**engine_kwargs) 等。
#01示例
#声明一个/创建一个 写入器writer 指定文件为output.xlsx
with ExcelWriter('output.xlsx') as writer:df.to_excel(writer, sheet_name='sheet1')
#将df里面的内容,写到output.xlsx里面 指定表单为sheet1
#02示例
#任意写两个df(DataFrame)。两行数据,两个列,df1是这样的:
'''name age
0 bangbangzhi 18
1 hello 20
''' #正常df1会有很多很多数据,然后需要存储到Excel里面
df1 = pd.DataFrame([["bangbangzhi", 18],["hello", 20]], columns=["name", "age"])
df2 = pd.DataFrame([["java", 40],["python", 21]], columns=["name", "age"])
with pd.ExcelWriter("out02.xlsx") as writer: #一个名为out02.xlsx的Excel文件df1.to_excel(writer, sheet_name="sheet1") #df1存sheet1这个表单df2.to_excel(writer, sheet_name="sheet2") #df2存sheet2这个表单
#03示例
import pandas as pd
from datetime import date, datetime #两行数据 两列数据
'''X Y
Date 2014-01-31 00:00:00 1999-09-24 00:00:00
Datetime 1998-05-26 23:33:04 2014-02-28 13:05:13
'''
df = pd.DataFrame([[date(2014, 1, 31), date(1999, 9, 24)],[datetime(1998, 5, 26, 23, 33, 4), datetime(2014, 2, 28, 13, 5, 13)],],index=["Date", "Datetime"],columns=["X", "Y"],
)
with pd.ExcelWriter("out03.xlsx",date_format="YYYY-MM-DD", #统一时间格式 年-月-日datetime_format="YYYY-MM-DD HH:MM:SS" #统一时间格式 年-月-日 时:分:秒
) as writer:df.to_excel(writer)#统一时间格式 年-月-日 意义是 年是第一个 并且中间是横杠隔开 然后月是第二个 .......
#(只要数据过来,哪怕5-2-2025) 程序也只认5是年份 2025是日期(因为我们指定了格式)
本文演示Excel的案例,用了很多DataFrame语法。及读取了Excel文件,取值到我们代码里,然后怎么弄呢?
可以:
详细的 DataFrame操作:
DataFrame全系列分享(数据结构.使用.特点.说明.外部文件数据.取值.功能函数.统计函数)
链接: DataFrame全系列分享【上榜文章】
【上榜文章】一文搞定,非常详细的Python-Pandas - DataFrame全系列分享。大量案例且晦涩难懂的有大白话解释。详细的扩展内容也额外写了其他更加细节全面的文章链接在里面,来保证DataFrame的全部内容,本文就是其中一个扩展读写数据Excel篇
总结
(会陆续更新非常多的IT技术知识及泛IT的电商知识,可以点个关注,共同交流。ღ( ´・ᴗ・` )比心)
(也欢迎评论,提问。 我会依次回答~)
相关文章:
Python-pandas-操作Excel文件(读取数据/写入数据)及Excel表格列名操作详细分享
Python-pandas-操作Excel文件(读取数据/写入数据) 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是pandas的使用语法。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】:每…...
手写 Vue 源码 === Vue3 设计思想
1.声明式框架 Vue3 是声明式的框架,用起来简单。 命令式和声明式区别 早在 JQ 的时代编写的代码都是命令式的,命令式框架重要特点就是关注过程声明式框架更加关注结果。命令式的代码封装到了 Vuejs 中,过程靠 vuejs 来实现声明式代码更加简单,不需要关注实现,按照要求填代…...
Android WebView加载h5打开麦克风与摄像头的权限问题
目录 快速处理 app向系统申请录音与相机权限h5向app申请录音和相机权限 详细解答 app权限与h5权限录音与麦克风默许的风险最佳实践 Android webview h5 麦克风权限,摄像头(相机)权限实现与填坑。 快速处理 app向系统申请录音与相机权限 …...
三种计算最小公倍数的方法分析
三种计算最小公倍数的方法分析与比较 一.引言 最小公倍数(Least Common Multiple, LCM)是数学中的一个基本概念,指能够被两个或多个整数整除的最小的正整数。在编程中,我们有多种方法可以计算两个数的最小公倍数。本文将分析三种…...
PDF转换工具xpdf-tools-4.05
XPDF是一个开源的PDF查看、提取和转换工具套件,使用C编写,支持多种操作系统,包括Linux、Unix、OS/2、Windows和Mac OS X1。XPDF不仅是一个PDF查看器,还包含多个实用工具,如文本提取器、图像转换器和HTML转换器等&a…...
aws(学习笔记第四十课) image-content-search
aws(学习笔记第四十课) image-content-search 使用SQS Lambda集成 数据库(Aurora Serverless) Cognito(用户管理) rekognition(图像解析) 学习内容: 使用SQS Lambda Aurora Serverless Cog…...
GPT-4o 图像生成与八个示例指南
什么是GPT-4o图像生成? 简单来说,GPT-4o图像生成是集成在ChatGPT内部的一项功能。用户可以直接在对话中,通过文本描述(Prompt)来创建、编辑和调整图像。这与之前的图像生成工具相比,体验更流畅、交互性更强…...
PostgreSQL 查看表膨胀情况的方法
PostgreSQL 查看表膨胀情况的方法 表膨胀(Table Bloat)是PostgreSQL中由于MVCC机制导致的一种常见现象,当大量数据被更新或删除后,表中会积累"死元组"(dead tuples),这些死元组占据空间但不可见,导致表实际占用的磁盘空…...
从 0 到 1!深度剖析项目实施流程,开启项目管理新视野
一、项目准备 / 前期准备 (一)跟销售进行项目交接 对接人:销售人员交接会议内容: 了解项目背景、客户基本信息、项目版本、具备二次开发功能、接口、了解合同信息等。明确项目情况、客户基本情况、使用软件(版本&…...
书生实战营之沐曦专场
一:实验环境进入和启动实验容器(D.run平台) 1.1首先进入平台进行注册 D.run平台https://console.d.run/ 注册和登录环节就跳过了。 1.2 启动实验容器--详细步骤如下 1.2.1选择容器的名称、区域、镜像(注意镜像必须选择Dlinfer) 1.2.2可以选…...
在运行 Hadoop 作业时,遇到“No such file or directory”,如何在windows里打包在虚拟机里运行
最近在学习Hadoop集群map reduce分布运算过程中,经多方面排查可能是电脑本身配置的原因导致每次运行都会报“No such file or directory”的错误,最后我是通过打包文件到虚拟机里运行得到结果,具体步骤如下: 前提是要保证maven已经…...
基于YOLOV5的目标检测识别
基于YOLOV5的目标检测识别 舰船目标检测口罩目标检测飞机目标检测 舰船目标检测 口罩目标检测 飞机目标检测...
第4篇:服务层抽象与复用逻辑
在业务系统复杂度指数级增长的今天,服务层(Service Layer)的合理设计直接影响着系统的可维护性和扩展性。本文将深入剖析 Egg.js 框架中的服务层架构设计,从基础实现到高级封装,全方位讲解企业级应用的开发实践。 一、…...
多模态大语言模型arxiv论文略读(五十四)
RoboMP 2 ^2 2: A Robotic Multimodal Perception-Planning Framework with Multimodal Large Language Models ➡️ 论文标题:RoboMP 2 ^2 2: A Robotic Multimodal Perception-Planning Framework with Multimodal Large Language Models ➡️ 论文作者ÿ…...
中小企业MES系统详细设计
版本:V1.1 日期:2025年5月2日 一、设备协议兼容性设计 1.1 设备接入框架 #mermaid-svg-PkwqEMRIIlIBPP58 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-PkwqEMRIIlIBPP58 .error-icon{fill…...
第二十周:项目开发中遇到的相关问题(一)
自十九周开始,我们便开始着手写项目(关于新闻资讯类的Web项目),当然,在这之中我们也学到了很多高效且有用的好技术,在接下来的内容中将去具体的描述这些好技术,介绍它们的具体用法和应用场景。本…...
WebRtc10: 端对端1v1传输基本流程
媒体能力协商过程 RTCPeerConnection(核心类) 基本格式 pc new RTCPeerConnection([configiration]); RTCPeerConnection方法分类 媒体协商Stream/Track传输相关方法统计相关方法 媒体协商过程 协商状态变化 媒体协商方法 createOffercreateAnswe…...
【云备份】配置文件加载模块
目录 一.为什么要配置文件 二.配置文件的实现 三.单例文件配置类设计 四.源码 一.为什么要配置文件 我们将服务端程序运行中用到的一些关键信息保存到配置文件中,这样可以使程序的运行更加灵活。 这样做的好处是,未来如果我们想要修改一些关键信息&…...
重构之道:识别并替换不合适使用的箭头函数
1、引言 JavaScript 自 ES6 引入了箭头函数(Arrow Function)后,因其简洁的语法和对 this 的词法绑定机制,迅速成为开发者喜爱的写法之一。然而,并不是所有场景都适合使用箭头函数。 在实际开发中,我们常常会因为追求代码简洁而忽视其潜在问题,例如: this 指向错误不适…...
git问题记录-如何切换历史提交分支,且保留本地修改
问题记录 我在本地编写了代码,突然想查看之前提交的代码,并且想保留当前所在分支所做的修改 通过git stash对本地的代码进行暂存 使用git checkout <commit-hash>切换到之前的提交记录。 查看完之后我想切换回来,恢复暂存的本地代码…...
【MySQL】事务管理
事务管理 一. 事务的概念二. 事务的特征三. 事务的版本支持四. 事务的提交方式五. 事务的常见操作六. 事务的隔离级别1. 查看与设置隔离级别2. 读未提交 (Read Uncommitted)3. 读提交 (Read Committed)4. 可重复读 (Repeatable Read)5. 串行化 (Serializable)6. 隔离级别的总结…...
【点对点协议(PPP)全解析】从原理到工程实践
目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心配置实现案例1:基础PPP链路建立案例2:CHAP认证配置 运行结果验证 三、性能对比测试…...
环境搭建:开启 Django 开发之旅
一、环境搭建:开启 Django 开发之旅 (一)安装 Python 先确保电脑上装有 Python 3.6 及以上版本,Django 5.1 的话,至少得 Python 3.8 哦。 安装前,先查下有没有装过 Python ,终端(Wi…...
如何配置NGINX作为反向代理服务器来缓存后端服务的响应?
大家好,我是锋哥。今天分享关于【如何配置NGINX作为反向代理服务器来缓存后端服务的响应?】面试题。希望对大家有帮助; 如何配置NGINX作为反向代理服务器来缓存后端服务的响应? 1000道 互联网大厂Java工程师 精选面试题-Java资源…...
【Java IO流】File类基础详解
参考笔记:java File类基础 万字详解(通俗易懂)-CSDN博客 目录 1.前言 2. File类介绍 3. File类构造方法 4.File类常用的方法案例演示 4.1 创建文件/文件夹的方法 4.2 删除文件/文件夹的方法 4.3 判断文件/文件夹是否存在的方法 4.4 …...
《C#数据结构与算法》—201线性表
线性表的实现方式 顺序表 线性表的顺序存储是指在内存中用一块地址连续的空间依次存放线性表的数据元素,用这种方式存储的线性表叫顺序表。 特点:表中相邻的数据元素在内存中存储位置也相邻。 顺序表接口实现: 方法名参数返回值描述GetLen…...
MATLAB绘制局部放大图
今天,我将分享一段 MATLAB 代码,该代码生成了一个主副图结合的可视化展示,用于比较不同控制系统性能表现。 clc; clear; close all;% 生成时间向量 t 0:0.1:12;% 生成模拟数据 zero_feedback 0.5 * ones(size(t)); % 恒定…...
TS 常用类型
JS不会检查变量类型的变化 给变量规定特定的数据类型,错误赋值时会报错 优势:TS会标记出代码中的意外行为,尤其是typeerrors 具体实现:类型注解 JS和TS中数据类型的变化...
[Control-Chaos] Toxic Cascade(毒性級鏈)
信息 信息描述靶場名稱Toxic Cascade地址GitHub: Toxic Cascade難度中等人數推薦1人類型CTF、APT 攻擊模擬、故事解謎、化工工程與逆向工程描述Toxic Cascade 是一個結合 CTF、APT 攻擊模擬、故事解謎、化工工程與逆向工程的高度沉浸式靶場。該靶場具有獨特的情境背景與模擬真…...
纳米AI搜索体验:MCP工具的实际应用测试,撰写报告 / 爬虫小红书效果惊艳
1. 引言 近期测试了纳米AI搜索的MCP工具功能,重点体验了其智能体在报告生成和社交媒体数据分析方面的表现。平台整合了100多个MCP工具,通过本地化部署的方式,为用户提供了不同于云端方案的操作体验。本文将分享实际测试结果,包括智…...
React useMemo函数
第一个参数是回调函数,返回计算的结果,第二个参数是依赖项,该函数只监听count1变量的变化 import { useReducer, useState } from react; import ./App.css;// 定义一个Reducer函数 根据不同的action进行不同的状态修改 function reducer(st…...
第 1 篇:起点的选择:为何需要超越数组与链表?
大家好,欢迎来到“数据结构选型指南”系列!在软件开发中,数据是核心,而如何高效地组织和访问这些数据,则是程序性能的关键。选择合适的数据结构,就像为你的 Java 应用选择最优的“引擎零件”。今天…...
MySQL 索引不生效的情况
MySQL 索引不生效的 SQL 查询需要避免的情况 索引是提高 MySQL 查询性能的关键,但某些 SQL 写法会导致索引失效,从而影响查询效率。以下是需要避免的常见情况: 1. 使用 NOT、! 或 <> 操作符 -- 索引可能失效 SELECT * FROM users WH…...
【阿里云大模型高级工程师ACP学习笔记】2.9 大模型应用生产实践 (上篇)
特别说明:由于这一章节是2025年3月官方重点更新的部分,新增内容非常多,因此我不得不整理成上、下两篇,方便大家参考。 学习目标 备考阿里云大模型高级工程师ACP认证,旨在全面掌握大模型应用生产实践的专业知识,提升在该领域的实操技能与理论水平,为职业发展增添助力。具…...
STM32 ZIBEE DL-20 无线串口模块
一.配置方法 二.串口中断 u8 i; u16 buf[20],res; u8 receiving_flag 0; // 新增一个标志,用于标记是否开始接收数组 void USART1_IRQHandler(void) {if(USART_GetITStatus(USART1, USART_IT_RXNE) ! RESET) //接收中断{res USART_ReceiveData(USART1);if(receiv…...
【算法基础】选择排序算法 - JAVA
一、算法基础 1.1 什么是选择排序 选择排序是一种简单直观的排序算法,它的工作原理是:首先在未排序序列中找到最小(或最大)元素,存放到排序序列的起始位置,然后再从剩余未排序元素中继续寻找最小…...
FastAPI 与数据库交互示例
目录 安装必要的包完整代码示例运行应用使用说明API 端点说明代码解析 下面将创建一个简单的 FastAPI 应用程序,演示如何与 SQLite 数据库进行交互。这个例子包括创建、读取、更新和删除(CRUD)操作。 安装必要的包 首先,需要安装…...
(六——下)RestAPI 毛子(Http resilience/Refit/游标分页)
文章目录 项目地址一、Refit1.1 安装需要的包1.2 创建接口IGitHubApi1.3 创建RefitGitHubService1. 实现接口2. 注册服务 1.4 修改使用方法 二、Http resilience2.1 安装所需要的包2.2 创建resilience pipeline简单版2.3 创建全局的resilience处理1. 创建清理全局ResilienceHan…...
Rust 学习笔记:关于枚举与模式匹配的练习题
Rust 学习笔记:关于枚举与模式匹配的练习题 Rust 学习笔记:关于枚举与模式匹配的练习题以下程序能否通过编译?若能,输出是什么?考虑这两种表示结果类型的方式,若计算成功,则包含值 T;…...
父子组件双向绑定
v-model 语法糖实现 vue中我们在input中可以直接使用v-model来完成双向绑定,这个时候 v-model 通常会帮我们完成两件事: v-bind:value的数据绑定@input的事件监听如果我们现在封装了一个组件,其他地方在使用这个组件时,是否也可以使用v-model来同时完成这两个功能呢? 当我…...
系统思考与第一性原理
最近一直有客户提到“第一性原理”,希望借此穿透纷繁复杂的现象,看清事情的本质。我第一反应是:这与系统思考中的冰山模型不谋而合。 冰山模型中提到:我们看到的只是表面事件,事件背后有趋势,趋势背后有结…...
基于Redis实现-UV统计
基于Redis实现-UV统计 本文将使用HyperLogLog来实现UV统计。 首先我们搞懂两个概念: UV:全称Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人。1天内同一个用户多次访问该网站,只记录一次…...
【iOS】类与对象底层探索
类与对象底层探索 Clang探索对象本质objc_setProperty源码探索cls与类的关联原理isa的类型isa_t原理探索 类&类的结构什么是元类NSObject到底有几个isa走位&继承关系图objc_class&objc_object 类结构分析计算cache类中的内存大小获取bits属性列表(prope…...
2025年- H18-Lc126-54.螺旋矩阵(矩阵)---java版
1.题目描述 2.思路* 思路1: 补充2: directions[1][0] // 表示“下”这个方向的行增量(1) directions[1][1] // 表示“下”这个方向的列增量(0) int[][] directions {{0, 1}, {1, 0}, {0, -1}, {-…...
Paddle Serving|部署一个自己的OCR识别服务器
前言 之前使用C部署了自己的OCR识别服务器,Socket网络传输部分是自己写的,回过头来一看,自己犯傻了,PaddleOCR本来就有自己的OCR服务器项目,叫PaddleServing,这里记录一下部署过程。 1 下载依赖环境 1.1 …...
yolov5 本地训练
YOLOv5 | Kaggle 直接gitclone他的源码用Vscode看(也可以直接把jupyter下下来) 他要1.8,我的是2.7,他这个代码可能有点年头了 两年前了 他的环境 我的环境 我就是不懂为什么清华源的torch windows默认下出来是cpu版本 . 在终端…...
同城跑腿小程序帮取帮送接单抢单预约取件智能派单同城配送全开源运营版源码优创
一、源码描述 这是一套同城跑腿小程序,基于FastadminUniapp框架,全开源无加密,可私有化部署,包含用户端、骑手端和运营端(后端),支持帮取/帮送模式,支持一键接单/抢单,主…...
基于SpringBoot的药房药品销售管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
机器学习中的学习率及其衰减方法全面解析
摘要: 本文深入解析机器学习中的学习率及其衰减方法,涵盖学习率的作用、常用衰减参数及七种主流衰减策略(分段常数、指数、自然指数、多项式、余弦、线性余弦、噪声线性余弦)。通过公式推导与图示对比,揭示不同衰减方式…...
硬件性能与能效比竞赛:解码 PC 硬件的 “速度与激情”
引言:当性能遇见能效,一场永不停歇的算力革命 在数字内容爆炸式增长的时代,无论是 4K/8K 游戏的极致画质追求,还是 AI 大模型的本地化部署需求,亦或是内容创作者对实时渲染的效率渴求,都在推动 PC 硬件走向…...