6-pandas数据读取
前言
一、分组聚合
1.groupby使用:
groupby() 是 pandas 库中用于对数据进行分组操作的一个非常重要的方法。
import pandas as pddata = {'城市': ['北京', '上海', '广州', '北京', '上海', '广州'],'人口': [2154, 2424, 1303, 2154, 2424, 1303],'年龄': [25, 30, 35, 25, 30, 35],'收入': [5000, 6000, 7000, 5000, 6000, 7000]}df2 = pd.DataFrame(data)# 计算每个城市的平均年龄
df2.groupby('城市')['年龄'].mean()# 每个城市的平均收入
df2.groupby('城市')['收入'].mean()# 计算每个城市的总人口
df2.groupby('城市')['人口'].sum()
2. agg方法:
(1)单个函数聚合----如果你只想对某一列应用一个函数,可以直接传递该函数的名字或函数对象给 agg 方法:
eg:agg({'金额': 'sum'})
(2)多个函数聚合----如果你想对某一列应用多个函数,可以传递一个列表给 agg 方法。
eg:agg({'金额': ['sum', 'mean']})
(3)不同的列不同函数----如果你希望对不同的列应用不同的聚合函数,可以在 agg 方法中传入一个字典,字典的键是列名,值是函数或函数列表。
eg:agg({'金额': 'sum', '订单号': 'count'})
data = {'UserId': [101, 102, 103, 104, 105],'Date': ['2023-10-01', '2023-10-01', '2023-10-02', '2023-10-03', '2023-10-03'],'Product': ['笔记本', '鼠标', '键盘', '笔记本', '显示器'],'Quantity': [2, 5, 3, 1, 2],'Amount': [2000, 50, 150, 1000, 400]
}
df3 = pd.DataFrame(data)# 每个产品的销售总额和销售量
df3.groupby('Product').agg({'Amount':'sum','Quantity':'sum'})# 每个用户下单的最早日期和最晚日期
df3.groupby('UserId')['Date'].agg(['min','max'])
二、透视表pivot_table()
透视表用来进行数据汇总和分析
1.引入库
代码如下(示例):
data = {'订单日期': pd.date_range(start='2023-01-01', periods=12, freq='M'),'产品类别': ['电子产品', '家居用品', '服装', '电子产品', '家居用品', '服装', '电子产品', '家居用品', '服装', '电子产品', '家居用品', '服装'],'销售额': [5000, 3000, 2000, 5500, 3200, 2200, 6000, 3500, 2300, 5200, 3100, 2100]
}
df4 = pd.DataFrame(data)# 统计每个月不同产品的销售额
import numpy as nppd.pivot_table(df4,values='销售额',columns='产品类别',index=df4['订单日期'].dt.strftime('%Y %m'),aggfunc=np.sum,fill_value=0)
2.提取日期dt.strftime()
获取年月
代码如下(示例):
df4['订单日期'].dt.strftime('%Y %m')
3.
三、文件读取
1.read_csv
pd.read_csv(r'C:\Users\B\Desktop\数据源\exa5.csv',encoding='ANSI')
pd.read_csv(r'C:\Users\B\Desktop\数据源\exa5.csv',encoding='gbk') # encoding='gbk'设置编码方式
path = r'C:\Users\B\Desktop\数据源\exa5.csv'
pd.read_csv(path,sep='\t',encoding='gbk')
(1)表头设置header
pd.read_csv(path,header=0,encoding='gbk')
(2)设置索引列index_col
pd.read_csv(path,index_col=0,encoding='gbk') # 设置列名下标为0的列,作为索引列
pd.read_csv(path,index_col='股票2',encoding='gbk')
(3)使用哪些列use_cols
pd.read_csv(path,usecols=[0,4,5],encoding='gbk')
(4)日期转换parse_dates
df6 = pd.read_csv(path,parse_dates=['日期'],encoding='gbk')
2.读取文本内容read_table
df8 = pd.read_table(r'C:\Users\B\Desktop\数据源\exa2.txt',sep='\s+') # sep='\s+' 凡是有空格的地方就分割
3.大文件读取
chunksize=1000设置块的大小
df9 = pd.read_csv(r'C:\Users\B\Desktop\数据源\exa5.csv',chunksize=1000,encoding='gbk') # chunksize=1000设置块的大小
data = pd.DataFrame([])
for chunk in df9:chunk = pd.DataFrame(chunk)data = pd.concat([data,chunk])
4.Excel文件读取read_excel
# excel工作薄里有多张表时,要使用sheet_name读取指定表
df10 = pd.read_excel(r'C:\Users\B\Desktop\数据源\exa10.xlsx',sheet_name='股票')df11 = pd.read_excel(r'C:\Users\B\Desktop\数据源\exa10.xlsx',sheet_name='评论')
5.html数据读取read_html
df11 = pd.read_html('https://www.air-level.com/rank')[0]
df12 = pd.read_html('https://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jgcg/index.phtml')[0]
lst = []
for i in range(1,3):url = f'https://vip.stock.finance.sina.com.cn/q/go.php/vComStockHold/kind/jgcg/index.phtml?p={i}'df = pd.read_html(url)[0]lst.append(df)
data = pd.concat(lst,ignore_index=True)
四、文件保存
保存为csv格式 to_csv
df7.to_csv('test.csv')
df7.to_excel('test2.xls')
df7.to_excel('test2.xlsx',index=False)
data.to_html('hehe.html')
五、拓展
1.内容提取str.extract()
通过正则提取字母
data = {'info': ['John 25', 'Lucy 30', 'Bob 28']}
df7 = pd.DataFrame(data)df7['name'] = df7['info'].str.extract(r'(\w+)')
2.str属性
data = {'姓名': ['lily Smith', 'lucy Johnson', 'jack Brown', 'tom Lee'],'入职日期': ['2022-05-15', '2020-10-01', '2019-07-20', '2023-03-10']}
df = pd.DataFrame(data)# 提取【姓名】里的名
df['姓名'].str.split(' ')[0]#结果['lily', 'Smith']df['姓名'].str.split(' ').str[0] # 批量定位到单元格内部,通过下标取值'''
结果
0 lily
1 lucy
2 jack
3 tom
Name: 姓名, dtype: object
'''# 提取入职年份
df['入职日期'].str[:4]
总结
相关文章:
6-pandas数据读取
前言 一、分组聚合 1.groupby使用: groupby() 是 pandas 库中用于对数据进行分组操作的一个非常重要的方法。 import pandas as pddata {城市: [北京, 上海, 广州, 北京, 上海, 广州],人口: [2154, 2424, 1303, 2154, 2424, 1303],年龄: [25, 30, 35, 25, 30, 3…...
omi friend实战记录
一、简介 omi friend是国外githab上开源的一个“AI硬件”的制作教程,它的形状是个三角形,属于项链佩戴这类的。可以接入llm进行对话,他有麦克风、扬声器,还有电池。外形好看,功能实用。还有专属的一系列app可以供方便…...
马原复习笔记
文章目录 前言导论物质实践人类社会资本主义社会主义共产主义后记 前言 一月二号下午四点多考试,很友好,不是早八,哈哈哈。之前豪言壮语和朋友说这次马原要全对,多做了几次测试之后,发现总有一些知识点是自己不知道的…...
VIM: Vision Mamba基于双向状态空间模型的高效视觉表示学习
这篇文章的主要内容可以概括如下: 背景与动机: 近年来,状态空间模型(SSM)在长序列建模中展现出巨大潜力,尤其是Mamba模型在硬件感知设计上的高效性。 然而,现有的SSM模型在处理视觉数据时面临…...
CannotRetrieveUpdates alert in disconnected OCP 4 cluster解决
环境: Red Hat OpenShift Container Platform (RHOCP) 4 问题: Cluster Version Operator 不断发送警报,表示在受限网络/断开连接的 OCP 4 集群中无法接收更新。 在隔离的 OpenShift 4 集群中看到 CannotRetrieveUpdates 警报: …...
libmodbus源码中重要的两个结构体讲解
文章目录 一、libmodbus重要数据结构讲解**1. 结构体 `_modbus`**定义成员解析小结**2. 结构体 `_modbus_backend`**定义成员解析小结**3. 两者关系和工作流程****关系****工作流程**一、libmodbus重要数据结构讲解 这两个结构体是 libmodbus 的核心,定义了 Modbus 通信上下文…...
PostgreSQL的一主两从集群搭建部署 (两同步)
一、实验环境 虚拟机名IP身份简称keep-postgres12-node1192.168.122.87主节点node1keep-postgres12-node2192.168.122.89备节点node2keep-postgres12-node3192.168.122.90备节点node3 二、安装数据库 源码包方式(主) 1、创建用户 [rootkeep-postgre…...
CPT203 Software Engineering 软件工程 Pt.5 软件测试(中英双语)
文章目录 8. 软件测试8.1 Testing(测试)8.1.1 A note of testing under the V & A framework8.1.2 The Basics8.1.3 The Goals8.1.4 The Stages 8.2 Developing testing(开发测试)8.2.1 Unit testing(单元测试&…...
在 Blazor 和 ASP.NET Core 中使用依赖注入和Scoped 服务实现数据共享方法详解
依赖注入(Dependency Injection,简称 DI)是一种设计模式,用于将对象的依赖关系从对象内部解耦出来,由外部容器进行管理和提供。在 Blazor 和 ASP.NET Core 中,DI 是内置的核心功能,它通过服务生…...
【信号滤波 (下)】采样条件,多种滤波算法对比(Matlab/C++)
目录 一、信号采样条件采样定理ADC的SPS设置 二、常用滤波算法对比A.滑动平均滤波B.陷波滤波陷波滤波器简介FIR(有限脉冲响应)滤波器和IIR(无限脉冲响应)滤波器 基于IIR实现陷波滤波滤波原理讲解双二阶滤波器计算过程陷波滤波优势 在上一篇中,介绍了信号时域到频域的…...
将广播发送和接收端实现一遍,完成一个发送端发送信息,对应多个接收端接收信息实验。
1、将广播发送和接收端实现一遍,完成一个发送端发送信息,对应多个接收端接收信息实验。 接受端 #include<myhead.h> #define handel_err(res,val) if(val-1){perror(res);return-1;} int main(int argc, const char *argv[]) {int rfdsocket(AF_…...
Nginx 负载均衡详解
一、Nginx 简介 Nginx 是一个高性能的开源 Web 服务器和反向代理服务器,以其轻量级、高并发、低内存消耗等特点著称。Nginx 不仅适用于静态资源的快速分发,还广泛应用于负载均衡、反向代理等场景。通过Nginx,可以轻松地构建一个高效、可靠且…...
自动驾驶新纪元:城区NOA功能如何成为智能驾驶技术的分水岭
目录 一、NOA 的定义 二、NOA 的主要特点 导航集成 场景覆盖 智能决策 高级感知能力 驾驶员参与 三、NOA 的优势 四、NOA的衡量指标 定性评价指标 安全性评价指标定义 可靠性评价指标定义 舒适性评价指标定义 通行效率评价指标 定量评价指标 五、代表厂商的实测…...
FFmpeg 编码和解码
文章目录 音频格式AACADIF音频数据交换格式ADTS音频数据传输流 音频解码音频编码 视频格式H264GOP图像组I帧,P帧,B帧H264压缩技术H264压缩级别H264视频级别H264码流结构SPSPPS 解码视频编码视频 音频格式 AAC AAC全称 Advanced Audio Coding࿰…...
【Ubuntu】Ubuntu server 18.04 搭建Slurm并行计算环境(包含NFS)
Ubuntu server 18.04 搭建Slurm并行计算环境(包含NFS) 一、Munge 认证模块 1.1、安装 munge 主节点和子节点都安装munge #安装 sudo apt update && sudo apt install munge libmunge-dev#设置开机启动 sudo systemctl enable munge sudo syste…...
WPF 绘制过顶点的圆滑曲线 (样条,贝塞尔)
在一个WPF项目中要用到样条曲线,必须过顶点,圆滑后还不能太走样,捣鼓一番,发现里面颇有玄机,于是把我多方抄来改造的方法发出来,方便新手: 如上图,看代码吧: ----------…...
Spring 的不同事务传播行为
目录 Spring 的不同事务传播行为 PROPAGATION_REQUIRES_NEW事务传播行为什么情况下会使用? 一、PROPAGATION_REQUIRES_NEW的含义 二、使用场景 三、注意事项 PROPAGATION_NESTED事务传播行为什么情况下会使用? 一、PROPAGATION_NESTED的含义 二、使用场景 三、嵌套事…...
PlantUML 时序图 基本例子
基本的例子 序列-> 用于绘制两个参与者之间的信息。参与者不必明确声明。 要有一个点状的箭头,就用--> 也可以用<- 和<-- 。这不会改变绘图,但可能提高可读性。注意,这只适用于顺序图,其他图的规则不同。 plantum…...
QILSTE H8-C414SY高亮黄光LED灯珠 发光二极管LED
在电子组件的复杂世界中,H8-C414SY型号的LED以其精确的技术参数和卓越的性能,成为了工程师和技术人员不可忽视的选择。本文将通过对这款高亮黄光LED的技术参数进行深入分析,增加文本的复杂性和突发性,以提供一份详尽的技术参考。 …...
git clone 和 conda 换源
文章目录 git clone 通过 sshconda 创建虚拟环境通过 env.yml 文件conda 换源 git clone 通过 ssh git clone ssh://用户名IP地址:/仓库名字.gitconda 创建虚拟环境通过 env.yml 文件 conda env create -f environment.ymlconda 换源 Step 1 生成 .bashrc 文件在家目录下。…...
Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘(下)
在上一篇博客《Spring Boot 多数据源解决方案:dynamic-datasource-spring-boot-starter 的奥秘》介绍了dynamic-datasource-spring-boot-starter的自动配置类和配置属性类之后,本文继续来剖析多数据源是如何切换的,什么时候切换的。 前文中提…...
移动 APP 设计规范参考
一、界面设计规范 布局原则: 内容优先:以内容为核心进行布局,突出用户需要的信息,简化页面导航,提升屏幕空间利用率.一致性:保持界面元素风格一致,包括颜色、字体、图标等,使用户在…...
yolov6算法及其改进
yolov6算法及其改进 1、YOLOV6简介2、RepVGG重参思想3、YOLOv6架构改进3.1、Backbone方面3.2、SPP改进3.3、Neck改进3.4、Head改进 4、正负样本匹配与损失函数4.1、TaskAligned样本匹配4.2、VFL Loss分类损失函数4.3、SIOU损失函数4.4、DFL损失函数 1、YOLOV6简介 YOLOv6设计主…...
java自定义注解对枚举类型参数的校验
目录 1.前提准备条件 1.1 pom.xml文件依赖: 1.2 枚举类: 1.3 controller接口: 1.4 实体参数: 1.5 knife4j的配置 2.实现要求 3.实现步骤 3.1 自定义注解类: 3.2 使用注解: 3.3 添加注解校验类: …...
K8S-LLM:用自然语言轻松操作 Kubernetes
在 Kubernetes (K8s) 的日常管理中,复杂的命令行操作常常让开发者感到头疼。无论是部署应用、管理资源还是调试问题,都需要记住大量的命令和参数。Kubernetes 作为容器编排的行业标准,其强大的功能伴随着陡峭的学习曲线和复杂的命令行操作。这…...
【GO基础学习】gin的使用
文章目录 模版使用流程参数传递路由分组数据解析和绑定gin中间件 模版使用流程 package mainimport ("net/http""github.com/gin-gonic/gin" )func main() {// 1.创建路由r : gin.Default()// 2.绑定路由规则,执行的函数// gin.Context&#x…...
【PCIe 总线及设备入门学习专栏 4.5 -- PCIe Message and PCIe MSI】
文章目录 PCIe Message 与 MSIPCIe Message 和 MSI 的作用与关系MSI 的配置与寄存器MSI 和 ARM GIC 的关系示例:MSI 在 ARM GIC 的实际应用总结 PCIe Message 与 MSI 本文将介绍 PCIe message 的作用以及message 与 MSI 的关系,再介绍 MSI 如何配置以及…...
sklearn_pandas.DataFrameMapper的用法
文章目录 介绍主要作用基本用法示例对不同列应用不同的转换器对多列应用相同的转换器输出为 Pandas DataFrame 注意事项转换器的适用性:输出格式:与 scikit-learn 的兼容性: 介绍 DataFrameMapper 是 sklearn-pandas 库中的一个工具…...
【2024年-7月-27日-开源社区openEuler实践记录】剖析 elease - management:优化软件发布流程的开源方案
开篇介绍 大家好,我是 fzr123,在软件开发流程管控领域探索许久,今天要给大家详细说说release - management这个极具价值的开源项目。在软件开发的生命周期里,发布管理至关重要,它关乎着软件能否稳定、高效且按时交付&…...
CPT203 Software Engineering 软件工程 Pt.1 概论和软件过程(中英双语)
文章目录 1.Introduction1.1 What software engineering is and why it is important(什么是软件工程,为什么它很重要)1.1 We can’t run the modern world without software(我们的世界离不开软件)1.1.1 What is Soft…...
Mysql数据库Redo日志和Undo日志的理解
数据库redo日志和undo日志 1、redo日志1.1 redo日志的作用1.1.1 不使用redo日志的问题1.1.2 使用redo日志的好处 1.2 redo日志刷盘策略 2、undo日志2.1 undo日志的作用2.2 undo日志的简要生成过程 1、redo日志 事务的4大特性(ACID):原子性、…...
大厂高频总线协议面试题及参考答案(几百家面试题挑选最高频精华)
目录 请介绍一下 SPI 总线协议及其工作原理,包括 SPI 有哪四种模式以及四根线的电气特性是什么? SPI 通信的波特率是多少,时钟来源是什么?SPI 的帧长度和数据格式是怎样的? 请简述 IIC 协议及其工作原理,包括 IIC 协议最多能挂载多少个从设备? IIC 总线上挂不同的设备…...
使用策略模式时的一个生效问题
策略模式的替换场景: 1:产品有默认策略A,B,项目扩展策略C,此为正常扩展。 2:产品有默认策略A,B,项目需要改写策略B,此为项目替换默认策略。 3:产品有默认策略A,B,项目扩展策略C,产品需要反向扩展…...
活动预告 |【Part2】 Azure 在线技术公开课:迁移和保护 Windows Server 和 SQL Server 工作负载
课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft 云技术的了解。参加我们举办的“迁移和保护 Windows Server 和 SQL Server 工作负载”活动,了解 Azure 如何为将工作负载…...
关于 PCB线路板细节锣槽问题 的解决方法
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144783817 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...
机器学习特征选择
一、特征选择概述 在实际的数据集中,往往包含了大量的特征,但并非所有特征都对我们要预测的目标变量(如分类任务中的类别标签,回归任务中的数值目标)有积极作用。有些特征可能携带的信息量极少,甚至会引入…...
第R5周:天气预测
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 任务说明:该数据集提供了来自澳大利亚许多地点的大约 10 年的每日天气观测数据。你需要做的是根据这些数据对RainTomorrow进行一个预测,…...
【每日学点鸿蒙知识】ets匿名类、获取控件坐标、Web显示iframe标签、软键盘导致上移、改变Text的背景色
1、HarmonyOS ets不支持匿名类吗? 不支持,需要显式标注对象字面量的类型,可以参考以下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/typescript-to-arkts-migration-guide-V5#%E9%9C%80%E8%A6%81%E6%…...
【Vim Masterclass 笔记02】第3章:Vim 核心知识 + L08:Vim 核心浏览命令 + L09:Vim 核心浏览命令同步练习
文章目录 Section 3:Vim Essentials(Vim 核心知识)S03L08 Essential Navigation Commands1 光标的上下左右移动2 上 / 下翻页3 基于单词前移4 基于单词后移5 重新定位视图中的文本(页面重绘)6 定位到所在行的行首7 光标…...
Spring Boot教程之四十:使用 Jasypt 加密 Spring Boot 项目中的密码
如何使用 Jasypt 加密 Spring Boot 项目中的密码 在本文中,我们将学习如何加密 Spring Boot 应用程序配置文件(如 application.properties 或 application.yml)中的数据。在这些文件中,我们可以加密用户名、密码等。 您经常会遇到…...
unity 按钮发送数据到服务器端
1. canvas 明显大于 main camera显示范围 按钮设置 reset 2 设置场景背景图片 2. 如何设置 sense 与背景图大小一致 stretch 没有生效 手动拖拽到 camera 大小 3 将button 按钮拖拽到背景image 中...
【TG\SE二次开发】天工CAD二次开发-c++模板介绍
VS的安装的环境: 1. Visual Studio EnterPrise 2022版本 2. 涉及到的工作负荷: 使用C的桌面开发、通用Windows平台开发 3. 特别要求的单个组件: 适用于最新的v143生成工具的CATL(x86和x64)组件、适用于最新的v143生…...
C语言预处理
预处理 C语言的编译步骤 预处理编译汇编链接 C语言的预处理 预处理就是在源文件编译之前,所进行的一部分预备操作,这部分操作是由预处理程序自动完成;当源文件在编译时,编译器会自动调用预处理程序来完成预处理操作执行的解析…...
DPIN基金会在曼谷发布全球去中心化GPU算力网络计划
12月12日,DPIN基金会在泰国曼谷举行的“DPIN—AIDePIN全球共识发布会”上,展示了其构建全球去中心化GPU算力网络的宏伟蓝图与愿景。DPIN基金会致力于开发一个基于人工智能与去中心化物理基础设施网络(DePIN)的高性能计算平台&…...
ONNX Runtime gpu版本安装
ONNX Runtime版本与cudatoolkit版本对应关系:NVIDIA - CUDA | onnxruntime onnx runtime发的版本:Releases microsoft/onnxruntime onnx runtime 官网:ONNX Runtime | Home onnx和onnx runtime版本对应关系:Compatibility | o…...
深入理解 MVCC 与 BufferPool 缓存机制
深入理解 MVCC 与 BufferPool 缓存机制 在 MySQL 数据库中,MVCC(Multi-Version Concurrency Control)多版本并发控制机制和 BufferPool 缓存机制是非常重要的概念,它们对于保证数据的一致性、并发性以及提升数据库性能起着关键作用…...
RockyLinux介绍及初始化
文章目录 一、背景二、下载 RockyLinux9 镜像三、环境初始化四、安装 Docker 环境 一、背景 这里讲一个小故事: 我们都知道Linux 内核是由芬兰计算机科学家林纳斯托瓦兹 (Linus Torvalds) 于 1991 年首次开发的,随后有一个非常重要的公司RetHat成立&am…...
Python中切片操作符
在Python中,切片是一种操作符,允许你获取序列(如列表、元组、字符串)的一部分。切片操作返回序列的一个子集,这个子集是一个新的对象,与原始序列是独立的。切片操作通常用于列表、元组、字符串等。 切片语…...
python -【es】基本使用
一. 前言 在Python中使用Elasticsearch(ES)通常涉及安装Elasticsearch的Python客户端库,然后通过该库与Elasticsearch集群进行交互。 二. 基本使用 1. 安装Elasticsearch Python客户端库 首先,你需要安装elasticsearch库。你可…...
JVM实战—5.G1垃圾回收器的原理和调优
大纲 1.G1垃圾回收器的工作原理 2.G1分代回收原理—性能为何比传统GC好 3.使用G1垃圾回收器时应如何设置参数 4.如何基于G1垃圾回收器优化性能 5.问题汇总 1.G1垃圾回收器的工作原理 (1)ParNew CMS的组合有哪些痛点 (2)G1垃圾回收器 (3)G1如何实现垃圾回收的停顿时间是…...