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

比较系统的学习 pandas (2)

pandas 数据读取与输出方法和常用参数

1、读取 CSV文件

pd.read_csv("path+name",step,encoding="gbk",header="infer",name=[],skip_blank_lines=True,comment=None)

path : 文件路径

step : 指定分隔符,默认为 逗号

encoding  : 文件内容的编码格式,,通常指定为'utf-8'

header  : 指定第几行是表头,默认会自动推断把第一行作为表头。header =None ,没有表头

names: 列表,可选。指定列名的列表,如果数据文件中不包含列名,通过names指定列名,若指定则应该设置header=None。列名列表中不允许有重复值。

comment:  字符串,默认值None。设置注释符号,注释掉行的其余内容。将一个或多个字符串传递给此参数以在输入文件中指示注释。注释字符串与当前行结尾之间的任何数据都将被忽略。

 na_rep: 字符串,默认值''(空字符)。缺失值表示方式


pd.read_csv('data/data.csv',encoding="gbk") # 注意目录层级pd.read_csv('data.csv') # 如果文件与代码文件在同一目录下pd.read_csv('data/my/my.data') # CSV文件的扩展名不一定是.csv# 本地绝对路径
pd.read_csv('/user/gairuo/data/data.csv')# 使用URL
pd.read_csv('https://www.gairuo.com/file/data/dataset/GDP-China.csv')# 数据分隔符默认是逗号,可以指定为其他符号pd.read_csv(data, sep='\t') # 制表符分隔tab
pd.read_table(data) # read_table 默认是制表符分隔tab
pd.read_csv(data, sep='|') # 制表符分隔tab
pd.read_csv(data,sep="(?<!a)\|(?!1)", engine='python') # 使用正则表达式pd.read_csv(data, names=['列1', '列2'], header=None)

2、输出到 csv 文件

data.to_csv("path+name",sep=",",na_rep="",index=True,header=True,encoding="utf-8,compression=None)

path  : 输文件出路径

sep  :指定分隔符,默认为 逗号

index  :是否将索引一起导入,一般需要设置为 False

header : 如果不需要表头,可以将 header 设置为 False,

encoding  :  输出文件的编码格式

compression   :字符串或字典,默认值'infer'。用于磁盘数据的实时解压缩。可选值:{'infer', 'zip', 'gzip', 'bz2', 'zstd', 'tar'}。如果使用'infer',且如果filepath_or_buffer是以‘.gz’, ‘.bz2’, ‘.zip’, ‘.xz’结尾的字符串,则使用gzip、bz2、zip或xz,否则不进行解压缩。如果使用‘.zip’,则ZIP文件必须只包含一个要读取的数据文件。设置为None,表示不解压。如果文件较大,可以使用compression进行压缩

df.to_csv('data/done.csv') # 可以指定文件目录路df.to_csv('done.csv', index=False) # 不要索引# 创建一个包含out.csv的压缩文件out.zip
compression_opts = dict(method='zip',archive_name='out.csv')
df.to_csv('out.zip', index=False,compression=compression_opts)

3、读取 excel 文件

pd.read_excel("path+name", sheet_name=0,header=0,encoding="utf-8",names=[],comment=None)

path : 文件路径

step : 指定分隔符,默认为 逗号

encoding  : 文件内容的编码格式,,通常指定为'utf-8'

names: 列表,可选。指定列名的列表,如果数据文件中不包含列名,通过names指定列名,若指定则应该设置header=None。列名列表中不允许有重复值。

header  : 指定第几行是表头,默认会自动推断把第一行作为表头。header =None ,没有表头

sheet_name : 指定Excel文件读取哪个sheet,默认为第一个

comment:  字符串,默认值None。设置注释符号,注释掉行的其余内容。将一个或多个字符串传递给此参数以在输入文件中指示注释。注释字符串与当前行结尾之间的任何数据都将被忽略。

pd.read_excel('data/data.xlsx') # 注意目录层# 本地绝对路径
pd.read_excel('/user/gairuo/data/data.xlsx')# 使用URL
pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')# 字符串、整型、列表、None,默认为0
pd.read_excel('tmp.xlsx', sheet_name=1) # 第二个sheet
pd.read_excel('tmp.xlsx', sheet_name='总结表') # 按sheet的名字
# 读取第一个、第二个、名为Sheet5的sheet,返回一个df组成的字典
dfs = pd.read_excel('tmp.xlsx', sheet_name=[0, 1, "Sheet5"])pd.read_excel('tmp.xlsx', names=['姓名', '年龄', '成绩'])

4、写入 excel

data.to_excel("path+name",sheeet_name,index=true,na_rep="")

path : 文件路径

sheet_name   定Excel文件写入哪个sheet,默认为第一个

index  :是否将索引一起导入,一般需要设置为 False

na_rep: 字符串,默认值''(空字符)。缺失值表示方式

不知大家发现没,CSV 和 excel 操作差不多

# 导出,可以指定文件路径
df.to_excel('path_to_file.xlsx')
# 指定sheet名,不要索引
df.to_excel('path_to_file.xlsx', sheet_name='Sheet1', index=False)

5、SQL 读取写入与查询         

注意需要安装SQLAlchemy库


from sqlalchemy import create_engine# 创建数据库对象,SQLite内存模式engine = create_engine('sqlite:///:memory:')# 取出表名为data的表数据
with engine.connect() as conn, conn.begin():
data = pd.read_sql_table('data', conn)# 将数据写入
data.to_sql('data', engine)# 大量写入
data.to_sql('data_chunked', engine, chunksize=1000)# 使用SQL查询
pd.read_sql_query('SELECT * FROM data', engine

相关文章:

比较系统的学习 pandas (2)

pandas 数据读取与输出方法和常用参数 1、读取 CSV文件 pd.read_csv("pathname",step,encoding"gbk",header"infer"&#xff0c;name[],skip_blank_linesTrue,commentNone) path : 文件路径 step : 指定分隔符&#xff0c;默认为 逗号 enco…...

怎么查看电脑主板最大支持多少内存?

很多电脑&#xff0c;内存不够用&#xff0c;但应速度慢&#xff1b;还有一些就是买了很大的内存条&#xff0c;但是还是反应慢&#xff1b;这是为什么呢&#xff1f;我今天明白了&#xff0c;原来每个电脑都有自己的适配内存&#xff0c;就是每个电脑能支持多大的内存&#xf…...

数据结构——线段树

线段树的结构 线段树是一棵二叉树&#xff0c;其结点是一条“线段”——[a,b]&#xff0c;它的左儿子和右儿子分别是这条线段的左半段和右半段&#xff0c;即[a, (ab)/2 ]和[(ab)/2 ,b]。线段树的叶子结点是长度为1的单位线段[a,a1]。下图就是一棵根为[1,10]的线段树&#xff1…...

【C++进阶】实现C++线程池

文章目录1. thread_pool.h2. main.cpp1. thread_pool.h #pragma once #include <iostream> #include <vector> #include <queue> #include <thread> #include <mutex> #include <condition_variable> #include <future> #include &…...

Redis常用五种数据类型

一、Redis String字符串 1.简介 String类型在redis中最常见的一种类型 string类型是二制安全的&#xff0c;可以存放字符串、数值、json、图像数据 value存储最大数据量是512M 2. 常用命令 set < key>< value>&#xff1a;添加键值对 nx&#xff1a;当数据库中…...

C++ Primer第五版_第十一章习题答案(1~10)

文章目录练习11.1练习11.2练习11.3练习11.4练习11.5练习11.6练习11.7练习11.8练习11.9练习11.10练习11.1 描述map 和 vector 的不同。 map 是关联容器&#xff0c; vector 是顺序容器。 练习11.2 分别给出最适合使用 list、vector、deque、map以及set的例子。 list&#xff1a…...

GEE:使用LandTrendr进行森林变化检测详解

作者:_养乐多_ 本文介绍了一段用于地表变化监测的代码,该代码主要使用谷歌地球引擎(GEE)中的 Landsat 时间序列数据,采用了 Kennedy 等人(2010) 发布的 LandTrendr 算法,对植被指数进行分割,通过计算不同时间段内植被指数的变化来检测植被变化。 目录 一、加入矢量边界 …...

docker项目实施

鲲鹏916架构openEuler-arm64成功安装docker并跑通tomcat容器_闭关苦炼内功的技术博客_51CTO博客鲲鹏916架构openEuler-arm64成功安装docker并跑通tomcat容器&#xff0c;本文是基于之前这篇文章鲲鹏920架构arm64版本centos7安装docker下面开始先来看下系统版本卸载旧版本旧版本…...

springboot实现邮箱验证码功能

引言 邮箱验证码是一个常见的功能&#xff0c;常用于邮箱绑定、修改密码等操作上&#xff0c;这里我演示一下如何使用springboot实现验证码的发送功能&#xff1b; 这里用qq邮箱进行演示&#xff0c;其他都差不多&#xff1b; 准备工作 首先要在设置->账户中开启邮箱POP…...

Java 进阶(5) Java IO流

⼀、File类 概念&#xff1a;代表物理盘符中的⼀个⽂件或者⽂件夹。 常见方法&#xff1a; 方法名 描述 createNewFile() 创建⼀个新文件。 mkdir() 创建⼀个新⽬录。 delete() 删除⽂件或空⽬录。 exists() 判断File对象所对象所代表的对象是否存在。 getAbsolute…...

“终于我从字节离职了...“一个年薪40W的测试工程师的自白...

”我递上了我的辞职信&#xff0c;不是因为公司给的不多&#xff0c;也不是因为公司待我不好&#xff0c;但是我觉得&#xff0c;我每天看中我憔悴的面容&#xff0c;每天晚上拖着疲惫的身体躺在床上&#xff0c;我都不知道人生的意义&#xff0c;是赚钱吗&#xff1f;是为了更…...

设计模式之策略模式(C++)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 一、策略模式是什么&#xff1f; 策略模式是一种行为型的软件设计模式&#xff0c;针对某个行为&#xff0c;在不同的应用场景下&…...

从工厂普工到Python女程序员,聊聊这一路我是如何逆袭的?

我来聊聊我是如何从一名工厂普工&#xff0c;到国外程序员的过程&#xff0c;这里面充满了坎坷。过去我的工作是在工厂的流水线上&#xff0c;我负责检测电池的正负极。现如今我每天从早上6:20起床&#xff0c;6点四五十分出发到地铁站&#xff0c;7:40到公司。我会给自己准备一…...

全国青少年信息素养大赛2023年python·选做题模拟二卷

目录 打印真题文章进行做题: 全国青少年电子信息智能创新大赛 python选做题模拟二卷 一、单选题 1. numbers = [1, 11, 111, 9], 运行numbers.sort() 后,运行numbers.reverse() numbers会变成?( )...

分布式事务Seata原理

Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能与简单易用的分布式事务服务&#xff0c;为用户提供了 AT、TCC、SAGA 和 XA 几种不同的事务模式。Seata AT模式是基于XA事务演进而来&#xff0c;需要数据库支持。AT 模式的特点就是对业务无入侵式&#xff0…...

用ChatGPT怎么赚钱?普通人用这5个方法也能赚到生活费

ChatGPT在互联网火得一塌糊涂&#xff0c;因为它可以帮很多人解决问题。比如&#xff1a;帮编辑人员写文章&#xff0c;还可以替代程序员写代码&#xff0c;帮策划人员写文案策划等等。ChatGPT这么厉害&#xff0c;能否用它来赚钱呢&#xff1f;今天和大家分享用ChatGPT赚钱的5…...

( “树” 之 DFS) 110. 平衡二叉树 ——【Leetcode每日一题】

110. 平衡二叉树 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] …...

nvm软件使用-同一个环境下控制多个不同node版本

1.使用场景 nvm是一个用于管理Node.js版本的工具&#xff0c;它可以让你在同一台机器上安装和切换不同的Node.js版本。使用nvm的好处有以下几点&#xff1a; 1.1.nvm可以让你轻松地测试你的代码在不同的Node.js版本下的兼容性和性能&#xff0c;避免因为版本差异导致的问题。…...

连续两个南航的研究生面试出了从来没出现过的问题,本科和研究生都是计算机专业的,竟然说static是不可更改的。

最近面试人数有点多&#xff0c;面试有点频繁&#xff0c;因此发现了一些学生普遍会发生的错误&#xff0c;可以说是很离谱。 因为做了十多年的面试官&#xff0c;无论是大中小厂的面试&#xff0c;还是社招、校招。 从来没有遇到过这样的情况&#xff0c;而且发生在两个南航…...

How to install nacos/nacos-server:v2.1.2-slim with docker

今天给大家介绍一下如何基于Docker的nacos/nacos-server:v2.1.2-slim镜像安装nacos 1、Data Source 我们需要从nacos的github官网下载nacos 2.12发布包 nacos-server-2.1.2.tar.gznacos-server-2.1.2.zip 这里以nacos-server-2.1.2.tar.gz为例来介绍&#xff0c;解压后我们…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...