数据导入导出
大约 3 分钟PythonPythonPandas
数据导入导出
1 数据导入
1.1 读取Excel
使用 pd.read_excel
函数可以读取 Excel 文件。
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('data.xlsx')
print(df)
name age
0 Alice 25
1 Bob 30
2 Charlie 35
读取指定工作表
如果 Excel 文件中有多个工作表,可以通过 sheet_name
参数指定要读取的工作表。
# 读取名为 'Sheet1' 的工作表
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
读取多个工作表
可以一次读取多个工作表,并将它们存储在一个字典中。
# 读取多个工作表
dfs = pd.read_excel('data.xlsx', sheet_name=['Sheet1', 'Sheet2'])
print(dfs['Sheet1'])
print(dfs['Sheet2'])
指定列和行
可以通过 usecols
参数指定要读取的列,通过 skiprows
参数指定要跳过的行。
# 读取指定的列和行
df = pd.read_excel('data.xlsx', usecols='A:C', skiprows=2)
print(df)
指定索引列
可以通过 index_col
参数指定哪个列作为 DataFrame 的索引。
# 指定第一列作为索引
df = pd.read_excel('data.xlsx', index_col=0)
1.2 读取csv
csv文件是一种默认用逗号分隔的数据存储方式(也可以指定其他的字符分隔)。
使用 pd.read_csv
函数可以读取 CSV 文件。
# 读取 CSV 文件
df = pd.read_csv('data.csv')
print(df)
指定分隔符
默认情况下,pd.read_csv
使用逗号作为分隔符,可以通过 sep
参数指定其他分隔符。
# 使用分号作为分隔符
df = pd.read_csv('data.csv', sep=';')
指定编码
可以通过 encoding
参数指定文件的编码,例如读取包含中文的文件时常用 utf-8
或 gbk
。
# 使用 utf-8 编码
df = pd.read_csv('data.csv', encoding='utf-8')
读取指定列
可以通过 usecols
参数指定要读取的列。
# 读取指定的列
df = pd.read_csv('data.csv', usecols=['name', 'age'])
跳过行
可以通过 skiprows
参数指定要跳过的行。
# 跳过前两行
df = pd.read_csv('data.csv', skiprows=2)
指定索引列
可以通过 index_col
参数指定哪个列作为 DataFrame 的索引。
# 指定第一列作为索引
df = pd.read_csv('data.csv', index_col=0)
2 数据导出
数据从文件读取到 Pandas 中后,进行的修改并不会对源文件产生影响,如果需要保存修改的内容,可以将 DataFrame 导出为多种文件格式。
2.1 导出为 Excel
import pandas as pd
# 创建 DataFrame
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35]
})
# 导出 DataFrame 到 Excel 文件
df.to_excel('output.xlsx', index=False)

导出到多个工作表
可以通过创建一个 Pandas Excel writer 对象,将 DataFrame 导出到多个工作表。
with pd.ExcelWriter('output.xlsx') as writer:
df1.to_excel(writer, sheet_name='Sheet1')
df2.to_excel(writer, sheet_name='Sheet2')
指定列宽
可以通过 xlsxwriter
模块设置列宽。
# 创建 Pandas Excel writer 对象
with pd.ExcelWriter('output.xlsx', engine='xlsxwriter') as writer:
df.to_excel(writer, sheet_name='Sheet1', index=False)
# 获取 xlsxwriter 的工作表对象
worksheet = writer.sheets['Sheet1']
# 设置列宽
worksheet.set_column('A:A', 20)
worksheet.set_column('B:B', 10)
2.2 导出为 CSV
# 导出 DataFrame 到 CSV 文件
df.to_csv('output.csv', index=False)
指定分隔符
可以通过 sep
参数指定分隔符。
# 使用分号作为分隔符
df.to_csv('output.csv', sep=';', index=False)
指定编码
可以通过 encoding
参数指定文件的编码。
# 使用 utf-8 编码
df.to_csv('output.csv', encoding='utf-8', index=False)
导出指定列
可以通过 columns
参数指定要导出的列。
# 导出指定的列
df.to_csv('output.csv', columns=['name', 'age'], index=False)