pandas创建及读取excel文件

本文介绍如何使用Pandas进行Excel文件的创建与读取操作,包括数据的写入、读取、行列查看等基本功能,并讲解了如何处理无header、特定列与行的读取等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建文件

  • 将DataFrame数据写入excel文件。
  • 没有限制时,会自动添加index。
  • 用字典创建时的key则自动为column。
  • 如果想去掉自动生成的index,可以用set_index指定,但不会改变原df。如果想要改变,使用inplace参数。
import pandas as pd
file = r"D:\xlsx\test1.xlsx"
df1 = pd.DataFrame({"ID": ["a", "b", "c"], "name": ["Lucy", "Jim", "Lily"], "score": [70, 80, 90]})
print(df1)
df1.to_excel(file)
  ID  name  score
0  a  Lucy     70
1  b   Jim     80
2  c  Lily     90

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ialhr6fy-1661600614670)(attachment:image.png)]

df1 = df1.set_index("ID")   #注意原df1不改变
print(df1)
    name  score
ID             
a   Lucy     70
b    Jim     80
c   Lily     90

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RaHVqYbh-1661600614673)(attachment:image.png)]

df1 = pd.DataFrame({"ID": ["a", "b", "c"], "name": ["Lucy", "Jim", "Lily"], "score": [70, 80, 90]})
df1.set_index("ID", inplace=True)   #注意原df1改变
print(df1)
    name  score
ID             
a   Lucy     70
b    Jim     80
c   Lily     90

读取文件

  • 当从excel读取文件时,也会自动在生成的数据上加index。
import pandas as pd
file_src = r"D:\xlsx\test1.xlsx"
file_dst = r"D:\xlsx\test2.xlsx"
df1 = pd.read_excel(file_src)       #默认读出的数据会自动添加index, 会将首行数据作为column
print(df1)
  ID  name  score
0  a  Lucy     70
1  b   Jim     80
2  c  Lily     90

查看行列及前后几行

df1.head(2)
IDnamescore
0aLucy70
1bJim80
df1.tail(2)
IDnamescore
1bJim80
2cLily90
df1.shape
(3, 3)

数据header不是excel的第一行

  • 使用header指定第几行,注意excel的第一行对应的header为0

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BttICNzc-1661600614674)(attachment:image.png)]

df1 = pd.read_excel(file_src,header=1) 
df1.columns
Index(['ID', 'name', 'score'], dtype='object')

数据无header

  • 在读取时header指定为None,使用columns指定header
  • 在读取时,使用names指定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H4CSL6m2-1661600614675)(attachment:image.png)]

# 使用header和columns配合
df1 = pd.read_excel(file_src, header=None) 
df1.columns = ["ID", "name", "score"]
df1.columns
Index(['ID', 'name', 'score'], dtype='object')
# 使用names指定
df1 = pd.read_excel(file_src, names=["ID", "name", "score"]) 
df1.columns
Index(['ID', 'name', 'score'], dtype='object')

读入数据时将index删除掉

  • 使用index_col参数设置读入时的index
file_src =  r"D:\xlsx\test2.xlsx"
df1 = pd.read_excel(file_src)
df1
IDnamescore
0aLucy70
1bJim80
2cLily90
file_src =  r"D:\xlsx\test2.xlsx"
file_dst = r"D:\xlsx\test3.xlsx"
df1 = pd.read_excel(file_src, index_col="ID")
print(df1)
df1.to_excel(file_dst)
    name  score
ID             
a   Lucy     70
b    Jim     80
c   Lily     90

读取指定的列

  • 使用usecols指定,可以为数字或者字母,列表或者切片。

指定读取的行数

  • nrows=数字
file_src =  r"D:\xlsx\test2.xlsx"
df1 = pd.read_excel(file_src, nrows=2, index_col="ID")
print(df1)
    name  score
ID             
a   Lucy     70
b    Jim     80

指定跳过的行

  • skiprows=列表
file_src =  r"D:\xlsx\test2.xlsx"
df1 = pd.read_excel(file_src, skiprows=[1,3], index_col="ID")
print(df1)
   name  score
ID            
b   Jim     80

参考

详细可参考 https://editor.youkuaiyun.com/md/?articleId=126057819

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值