Appearance
读取Excel文件
Pandas 可以方便地读取 Excel 文件,支持 .xls 和 .xlsx 格式。
基础读取
python
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx')
# 读取指定工作表
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
df = pd.read_excel('data.xlsx', sheet_name=0) # 按索引常用参数
python
# 指定列名行
df = pd.read_excel('data.xlsx', header=0) # 第一行为列名
df = pd.read_excel('data.xlsx', header=None) # 无列名
# 自定义列名
df = pd.read_excel('data.xlsx', names=['A', 'B', 'C'])
# 指定索引列
df = pd.read_excel('data.xlsx', index_col=0)
df = pd.read_excel('data.xlsx', index_col='ID')
# 选择特定列
df = pd.read_excel('data.xlsx', usecols='A:C') # Excel列名
df = pd.read_excel('data.xlsx', usecols=[0, 2, 3]) # 按位置
df = pd.read_excel('data.xlsx', usecols=['姓名', '年龄']) # 按名称数据范围
python
# 跳过行
df = pd.read_excel('data.xlsx', skiprows=2) # 跳过前2行
df = pd.read_excel('data.xlsx', skiprows=[0, 2, 4]) # 跳过指定行
# 读取指定行数
df = pd.read_excel('data.xlsx', nrows=100)
# 读取指定区域
df = pd.read_excel('data.xlsx', usecols='B:D', skiprows=2, nrows=10)读取多个工作表
python
# 读取所有工作表
all_sheets = pd.read_excel('data.xlsx', sheet_name=None)
print(all_sheets.keys()) # 查看所有工作表名
# 读取多个指定工作表
sheets = pd.read_excel('data.xlsx', sheet_name=['Sheet1', 'Sheet2'])
df1 = sheets['Sheet1']
df2 = sheets['Sheet2']
# 读取多个工作表(按索引)
sheets = pd.read_excel('data.xlsx', sheet_name=[0, 1, 2])数据类型控制
python
# 指定数据类型
df = pd.read_excel('data.xlsx', dtype={'年龄': int, '工资': float})
# 解析日期
df = pd.read_excel('data.xlsx', parse_dates=['日期'])
# 将指定列转为字符串
df = pd.read_excel('data.xlsx', dtype={'编号': str})处理合并单元格
python
# 默认情况下,合并单元格的值会填充到所有相关单元格
# 自定义处理合并单元格
df = pd.read_excel('data.xlsx')
# 前向填充
df.fillna(method='ffill', inplace=True)写入Excel
python
# 基础写入
df.to_excel('output.xlsx', index=False)
# 写入指定工作表
df.to_excel('output.xlsx', sheet_name='数据')
# 写入多个工作表
with pd.ExcelWriter('output.xlsx') as writer:
df1.to_excel(writer, sheet_name='Sheet1')
df2.to_excel(writer, sheet_name='Sheet2')
# 追加模式
with pd.ExcelWriter('output.xlsx', mode='a') as writer:
df.to_excel(writer, sheet_name='新数据')样式设置
python
# 使用openpyxl设置样式
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill
df.to_excel('styled.xlsx', index=False)
wb = load_workbook('styled.xlsx')
ws = wb.active
# 设置标题样式
for cell in ws[1]:
cell.font = Font(bold=True, color='FFFFFF')
cell.fill = PatternFill(start_color='366092', end_color='366092', fill_type='solid')
wb.save('styled.xlsx')Excel 是常用的数据交换格式,掌握 Excel 的读写操作非常重要。