跳至主要內容

数据导入导出

blacklad大约 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-8gbk

# 使用 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)
Excel

导出到多个工作表

可以通过创建一个 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)
上次编辑于:
贡献者: blacklad