当前位置:   article > 正文

【Pandas获取数据】读取、写入Excel数据_pandas写入excel文件的函数

pandas写入excel文件的函数

Pandas 中,可以使用 read_excel() 函数读取 Excel 文件,使用 to_excel() 函数写入 Excel 文件,文章是它们的用法和常用参数的说明,文中所用数据均来源与网络。

一、读取数据

read_excel()方法,直接使用pd.read_excel(r"文件路径")读取数据,默认读取第一个sheet的全部数据。

1、基础用法

import pandas as pd
df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx')
df.head()
  • 1
  • 2
  • 3

输出结果:
在这里插入图片描述

2、常用参数

read_excel()方法种常用的参数有以下几个:
(1)io: 指定要读取的 Excel 文件的路径或文件对象。
(2)sheet_name: 指定要读取的工作表名称或索引,默认值为 0,即第一个工作表。
待获取数据:
在这里插入图片描述
获取数据代码:

import pandas as pd
df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx',sheet_name='二维数据表')  #方法一
#df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx',sheet_name=1)     #方法二
df.head()
  • 1
  • 2
  • 3
  • 4

输出结果:
在这里插入图片描述
(3)header: 指定表头所在行号,默认为 0,表示第一行为表头。
读取数据代码:

import pandas as pd
df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx',header=1)
df.head()
  • 1
  • 2
  • 3

数据结果:
在这里插入图片描述
(4)index_col: 指定作为行索引的列,默认为 None,表示不使用任何列作为索引。
读取数据代码:

import pandas as pd
df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx',index_col='销售日期')
df.head()
  • 1
  • 2
  • 3

数据结果:
在这里插入图片描述
(5)usecols: 指定要读取的列范围,可以是列名称、列索引或一个包含列名称/索引的列表。如果使用列名称返回数据为空,可以更新pandas版本。
读取数据代码:

import pandas as pd
df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx',usecols=[0,1,2])  #方法一
# df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx',usecols=['销售日期','订单编号','地区']) 方法二
df.head()
  • 1
  • 2
  • 3
  • 4

数据结果:
在这里插入图片描述
(6)names: 为数据的每一列的表头名称,即columns,如果不填写,即为表格中columns中的名称,
如果填写,则输出的表头名称更改。
读取数据代码:

import pandas as pd
df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx',names=[0,1,2,3,4,5,6,7,8])  
df.head()
  • 1
  • 2
  • 3

数据结果:
在这里插入图片描述
(7)dtype: 指定列的数据类型。
读取数据代码:

import pandas as pd
df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx')  
#用info()方法查看各列数据的类型。
print(df.info())
df1=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx',dtype={1:"str"})  
print(df1.info())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

数据结果:
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
(7)skiprows: 跳过指定的行数,行数从1开始。
读取数据代码:

import pandas as pd
df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx',skiprows=1)  
df.head()
  • 1
  • 2
  • 3

数据结果:
在这里插入图片描述
(8)converters: 对指定列的数据进行指定函数的处理,传入参数为列名与函数组成的字典。converters{key:values},key 可以是列名或者列的序号,values是函数,可以def函数或者直接lambda都行。
读取数据代码:

import pandas as pd
# 对“单价”列所有名称加上"元",对“数量”列所有数据乘以2
df=pd.read_excel(r'C:\Users\ysm\Desktop\测试数据.xlsx', converters={"单价": lambda x: str(x)+'元','数量': lambda x: int(x)*2})
df.head()
  • 1
  • 2
  • 3
  • 4

数据结果:
在这里插入图片描述
(9)na_rep: 空值的替换值。

二、写入数据

to_excel()方法,将DataFrame数据写入excel文件。

1、基础用法

import pandas as pd
df = pd.DataFrame({"a": [1, 2, 3, 4], "b": [5, 6, 7, 8]})
print(df.head())
df.to_excel(r"C:\Users\ysm\Desktop\df.xlsx")
  • 1
  • 2
  • 3
  • 4

输出结果:
在这里插入图片描述

一开始我在执行的时候,一直报错“ImportError: cannot import name ‘stringify_path’”,查询了一下可能是Pycharm和Anaconda本地都安装了, 包重复导致的,可以先用 pip
uninstall pandas 卸载pandas,再用pip install pandas 重新安装后,重启jupyter
Notebook 就可以了。

2、常用参数

(1)excel_writer: 存放excel文件的地址。如果是只写文件名,不写具体的地址也可。会和py文件存放到一起。
(2)sheet_name: sheet页的名字。一般默认为sheet1
(3)na_rep: 缺失值表示方式,一般默认为’‘。
float_format=None, #格式化浮点数的字符串。
(4)columns: 要写入excel中的列,list,一般默认None,即全部写入。
(5)header: header即列名是否为columns,一般默认为True。
(6)index:index: 是否写入excel,一般默认为True。
(7)index_label: 要写入excel中的index列。
(8)startrow: 从哪一行开始写入数据。默认为0,即第一行。
(9)startcol: 从哪一列开始写入数据。默认为0,即第一列。
(10)engine: 可选参数, 用于写入要使用的引擎, openpyxl或xlsxwriter,默认是xlsxwriter。
在这里插入图片描述
(11)encoding: 编码格式,默认为’utf-8’。
(12)inf_rep: 可选参数, 默认值为inf,它通常表示无穷大。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/576353
推荐阅读
相关标签
  

闽ICP备14008679号