加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

详解Pandas读存Excel大全(一)

(2022-05-05 10:53:49)
分类: Python学习
转自:https://www.toutiao.com/article/7093401766724731395/

详解 Pandas 读存 Excel 大全(一)

2022-05-04 05:03·科技柳州哇哇

本文记录的是如何通过Pandas来读取Excel文件,以及如何将DataFrame保存到Excel文件中

官网参数详解:https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html

参数

read_excel函数能够读取的格式包含:xls, xlsx, xlsm, xlsb, odf, ods 和 odt 文件扩展名。支持读取单一sheet或几个sheet。

下面记录的官方文档中提供的全部参数信息:


pandas.read_excel(
  io,    
  sheet_name=0, 
  header=0, 
  names=None, 
  index_col=None, 
  usecols=None, 
  squeeze=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=None, 
  thousands=None, 
  decimal='.', 
  comment=None, 
  skipfooter=0, 
  convert_float=None, 
  mangle_dupe_cols=True, 
  storage_options=None
)

下面解释常用参数的含义:

  • io:文件路径,支持 str, bytes, ExcelFile, xlrd.Book, path object, or file-like object。默认读取第一个sheet的内容。案例:"/desktop/student.xlsx"
  • sheet_name:sheet表名,支持 str, int, list, or None;默认是0,索引号从0开始,表示第一个sheet。案例:sheet_name=1, sheet_name="sheet1",sheet_name=[1,2,"sheet3"]。None 表示引用所有sheet
  • header:表示用第几行作为表头,支持 int, list of int;默认是0,第一行的数据当做表头。header=None表示不使用数据源中的表头,Pandas自动使用0,1,2,3…的自然数作为索引。
  • names:表示自定义表头的名称,此时需要传递数组参数。
  • index_col:指定列属性为行索引列,支持 int, list of int, 默认是None,也就是索引为0,1,2,3等自然数的列用作DataFrame的行标签。如果传入的是列表形式,则行索引会是多层索引
  • usecols:待解析的列,支持 int, str, list-like, or callable ,默认是 None,表示解析全部的列。
  • dtype:指定列属性的字段类型。案例:{‘a’: np.float64, ‘b’: np.int32};默认为None,也就是不改变数据类型。
  • engine:解析引擎;可以接受的参数有"xlrd"、"openpyxl"、"odf"、"pyxlsb",用于使用第三方的库去解析excel文件
    • “xlrd”支持旧式 Excel 文件 (.xls)
    • “openpyxl”支持更新的 Excel 文件格式
    • “odf”支持 OpenDocument 文件格式(.odf、.ods、.odt)
    • “pyxlsb”支持二进制 Excel 文件
  • converters:对指定列进行指定函数的处理,传入参数为列名与函数组成的字典,和usecols参数连用。key 可以是列名或者列的序号,values是函数,可以自定义的函数或者Python的匿名lambda函数
  • skiprows:跳过指定的行(可选参数),类型为:list-like, int, or callable
  • nrows:指定读取的行数,通常用于较大的数据文件中。类型int, 默认是None,读取全部数据
  • na_values:指定列的某些特定值为NaN
  • keep_default_na:是否导入空值,默认是导入,识别为NaN

模拟数据

现在本次模拟了两个数据:Pandas_Excel.xls 和 Pandas_Excel.xlsx

Pandas_Excel.xls 文件中包含两个sheet,第二个数据只比第一个多个index的信息

1、sheet1的内容

image-20220423115151077

2、sheet2的内容

3、Pandas_Excel.xlsx的内容,模拟的完整信息:


import pandas as pd

默认情况

此时文件刚好在当前目录下,读取的时候指定文件名即可,可以看到读取的是第一个sheet


df = pd.read_excel("Pandas-Excel.xls")
df


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09

参数io

填写完整的文件路径作为io的取值。也可以使用相对路径


pd.read_excel(r"/Users/peter/Desktop/pandas/Pandas-Excel.xls")


name

age

sex

address

date

0

张三

23

深圳

2022-04-01

1

李四

16

广州

2022-04-02

2

小明

26

未知

深圳

2022-04-05

3

张飞

28

苏州

2021-09-08

4

小苏

20

NaN

2022-06-07

5

小王

0

南京

2022-05-09


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有