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
值是读取所有列,但缺少第一行的数据,因为第一行被当作表头处理了
- 语法:
excel_reader = pd.read_excel("xxxx.xlsx")
入参 | 类型 | 说明 |
---|---|---|
filename | str | 文件名 |
sep | str | 分隔符 |
header | int | 指定表头,即列名 |
encoding | str | 默认第一行,header = None, 没有表头,全部为数据内容 |
文件编码方式,不设置此选项, Pandas 默认使用 UTF-8 来解码 | ||
index_col | 指定索引对应的列为数据框的行标签, | |
names | list[str] | 列名名称: 默认 0、1、2、3 做自然排序分配给各条记录。['序号','姓名','年龄','城市'] |
sheet_name | int |
- 示例
数据读取
通过指定的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])