Skip to main content

excel处理

官方文档

主要函数read_excel()

pd.read_excel(io,            # 文件路径
sheetname=0, # 用于选取sheet表,默认是选取第一个sheet,即参数为0
header=0, # 表头,指定某一行作为列标签,默认是第一行,即参数为0
skiprows=None, # 跳过行,默认是无
index_col=None,# 指定用某一列作为行索引,默认是无,即没有
usecols=None, # 读取某些列,默认是无,表示所有的列都会被读取
names=None,
arse_cols=None,
date_parser=None,
na_values=None,
thousands=None,
convert_float=True,
has_index_names=None,
converters=None,
dtype=None,
true_values=None,
false_values=None,
engine=None,
squeeze=False,
**kwds)

dataFrame实例

特性(重要)

  • 默认情况下,pd框架中的属性values值是读取所有列,但缺少第一行的数据,因为第一行被当作表头处理了

image-20220817145130527

  • 语法:excel_reader = pd.read_excel("xxxx.xlsx")
入参类型说明
filenamestr文件名
sepstr分隔符
headerint指定表头,即列名
encodingstr默认第一行,header = None, 没有表头,全部为数据内容
文件编码方式,不设置此选项, Pandas 默认使用 UTF-8 来解码
index_col指定索引对应的列为数据框的行标签,
nameslist[str]列名名称: 默认 0、1、2、3 做自然排序分配给各条记录。['序号','姓名','年龄','城市']
sheet_nameint
  • 示例

数据读取

通过指定的sheet_name

# 获取所有sheet_name
xls = pd.ExcelFile(file_path)

# 通过遍历sheet_name来读取每个sheet,获得对应的df实例
for each_sheet_name in sheet_names:
df = xls.parse(each_sheet_name)

通过['A']['B'] 读取指定列数据

result = pd.read_excel(xxx.xlsx)

# 查看指定前几行,默认前5行,指定行数写小括号里
print(result.head())

# 查看数据的(行数、列数)
print(result.shape)
#(4, 4)

# 查看列索引列表
print(result.columns.values)
# ['No' 'Name' 'Age' 'Address']

# 查看行索引列表
print(result.index.values)
# [0 1 2 3]

# 写入数据
result.to_excel('新建.xlsx')

数据修改

df.drop(['Name'], axis=1) # 删除列
df1.drop(labels=[1,3],axis=0) #删除行
df.drop([0, 1]) # 删除行
df.drop_duplicates() # 删除重复值

df.fillna('missing')# 使用字符串填补
df.replace('old', 'new') # old替换成new

df.rename(columns={'old_name': 'new_name'}) # 选择性更改列名

df.columns = ['a','b','c'] # 重命名列名

df.dropna(axis = 0) # 删除有缺失的行
df.dropna(axis = 1) # 删除有缺失的列
  • 按列遍历
# 首先要使用指定列数据的名称
col_names = ["C", "H", "R", "M"]
data_frame = pd.read_excel(xlsx, names=col_names)


for col_name in col_names:
# 可以通过列名访问该列数据
print(data_frame[col_name])
  • 按行遍历

依赖安装

pip install openpyxl # .xlsx 文件

pip install xlrd # .xls 文件

读取excel文件

import pandas as pd

# 读取excel文件
excel = pd.ExcelFile("xxx.xlsx")

解析成DataFrame

# 默认读取第一个表
DataFrame = pd.read_excel(xxxx.xslx)
DataFrame = pd.read_excel(xxxx.xslx, sheet_name="xxxx")

sheet操作

# 按名称读取
DataFrame = pd.ExcelFile('file.xlsx', sheet_name="xxxx" )

# 按顺序读取
excel.parse(excel.sheet_names[0])
DataFrame = excel.parse(excel.sheet_names[0])