当前位置: 首页 > 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

http://www.lryc.cn/news/59020.html

相关文章:

  • 怎么查看电脑主板最大支持多少内存?
  • 数据结构——线段树
  • 【C++进阶】实现C++线程池
  • Redis常用五种数据类型
  • C++ Primer第五版_第十一章习题答案(1~10)
  • GEE:使用LandTrendr进行森林变化检测详解
  • docker项目实施
  • springboot实现邮箱验证码功能
  • Java 进阶(5) Java IO流
  • “终于我从字节离职了...“一个年薪40W的测试工程师的自白...
  • 设计模式之策略模式(C++)
  • 从工厂普工到Python女程序员,聊聊这一路我是如何逆袭的?
  • 全国青少年信息素养大赛2023年python·选做题模拟二卷
  • 分布式事务Seata原理
  • 用ChatGPT怎么赚钱?普通人用这5个方法也能赚到生活费
  • ( “树” 之 DFS) 110. 平衡二叉树 ——【Leetcode每日一题】
  • nvm软件使用-同一个环境下控制多个不同node版本
  • 连续两个南航的研究生面试出了从来没出现过的问题,本科和研究生都是计算机专业的,竟然说static是不可更改的。
  • How to install nacos/nacos-server:v2.1.2-slim with docker
  • Rust社区引发舆论危机,问题到底出在哪儿?
  • C++算法恢复训练之归并排序
  • 使用Process Explorer和Clumsy工具定位软件高CPU占用问题
  • 为何巴菲特和马斯克站在了一起?
  • 企业数字化转型全是坑?这几篇数字化转型成功案例,减少70%损失
  • 13.Java面向对象----嵌套类
  • Redis数据迁移过程,使用jedis客户端发送命令,需要注意string和byte类型的命令,如果使用的转换字符编码不一致,会导致丢数据
  • 第六章 IA-32指令类型
  • 基于BenchmarkSQL的Oracle数据库tpcc性能测试
  • Dapr和Rainbond集成,实现云原生BaaS和模块化微服务开发
  • 全国青少年信息素养大赛2023年python·选做题模拟五卷