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

比较系统的学习 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


http://www.kler.cn/news/10207.html

相关文章:

  • 18从零开始学Java之switch分支语句中该怎么用?
  • 【工作感悟】老程序员总结的四条工作经验教训
  • 表格软件界的卷王,Excel、access、foxpro全靠边,WPS:真荣幸
  • 3.1.2栈的顺序存储实现
  • 十分钟教你部署一个属于自己的chatgpt网站
  • WebSpider蓝蜘蛛网页抓取工具5.1用户手册
  • 10.网络爬虫—MongoDB详讲与实战
  • 多元函数的基本概念——“高等数学”
  • 编译原理期末速成笔记
  • 最详细的Ubuntu服务器搭建Stable-Diffusion教程(无显卡,仅用CPU)
  • 【CV】Latent diffusion model 扩散模型体验
  • Eyeshot Ultimate 2023 Crack
  • k8s部署sonarqube
  • C++11 如何区分右值引用与万能引用
  • QtSqlite加密--QtCipherSqlitePlugin的使用
  • QML控件--DialogButtonBox
  • 【精华】OCR关键信息提取之SER和RE
  • MyBatis基础增删改查
  • 类ChatGPT代码级解读:如何从零起步实现Transformer、llama/ChatGLM
  • 如何压缩照片到30kb以下?三个方法
  • MySQL之数据类型
  • 一个评测模型+10个问题,摸清盘古、通义千问、文心一言、ChatGPT的“家底”!...
  • 基于Spring Boot和Vue3打造一个属于自己的博客平台CodeInsight
  • 【AIGC】7、CLIP | OpenAI 出品使用 4 亿样本训练的图文匹配模型
  • 高可用同时数千人在线的微服务架构需要做些什么工作
  • 2023年的深度学习入门指南(3) - 动手写第一个语言模型
  • [NOIP2017 提高组] 逛公园 (题解)
  • macosBrew
  • 华纳云:php怎么判断域名跳转
  • SpringSecurity中用户表单登录验证源码分析