在 pandas
中,数据导入和导出是常见且非常重要的操作。pandas
支持多种数据格式的读取与写入,以下是一些常见的导入导出操作:
1. 从 CSV 文件导入数据
pandas
提供了 read_csv()
方法来从 CSV 文件中读取数据:
import pandas as pd
# 从 CSV 文件读取数据
df = pd.read_csv('data.csv')
# 查看前 5 行数据
print(df.head())
-
如果 CSV 文件中的数据没有表头,可以使用
header=None
来指定:df = pd.read_csv('data.csv', header=None)
-
还可以指定分隔符,如果文件使用的不是逗号分隔:
df = pd.read_csv('data.csv', sep=';')
-
如果文件包含编码问题,可以指定
encoding
参数:df = pd.read_csv('data.csv', encoding='utf-8') # 或 'ISO-8859-1' 等
-
如果只需要读取部分列,可以使用
usecols
参数:df = pd.read_csv('data.csv', usecols=['Column1', 'Column2'])
2. 将 DataFrame 导出为 CSV 文件
使用 to_csv()
方法可以将 DataFrame
导出为 CSV 文件:
df.to_csv('output.csv', index=False) # 不保存行索引
-
默认情况下,
to_csv()
会保存行索引,如果你不想保存行索引,可以设置index=False
。 -
如果你只想导出部分列:
df.to_csv('output.csv', columns=['Column1', 'Column2'], index=False)
-
可以指定分隔符(例如,制表符分隔):
df.to_csv('output.tsv', sep='\t', index=False)
3. 从 Excel 文件导入数据
要读取 Excel 文件,使用 read_excel()
方法。默认使用 openpyxl
或 xlrd
作为解析引擎(openpyxl
支持 .xlsx
格式,xlrd
支持 .xls
格式)。
df = pd.read_excel('data.xlsx', sheet_name='Sheet1') # 读取指定工作表
print(df.head())
-
如果 Excel 文件中有多个工作表,可以通过
sheet_name=None
读取所有工作表:df = pd.read_excel('data.xlsx', sheet_name=None) # 返回一个字典,键为工作表名称
-
如果只读取 Excel 中的某一列,可以通过
usecols
参数:df = pd.read_excel('data.xlsx', usecols=['Column1', 'Column2'])
4. 将 DataFrame 导出为 Excel 文件
pandas
提供了 to_excel()
方法,将 DataFrame
写入 Excel 文件:
df.to_excel('output.xlsx', index=False, sheet_name='Sheet1')
-
默认情况下,
to_excel()
会保存行索引,如果不需要行索引可以设置index=False
。 -
如果要写入多个工作表,可以使用
ExcelWriter
:with pd.ExcelWriter('output.xlsx') as writer: df.to_excel(writer, sheet_name='Sheet1', index=False) df2.to_excel(writer, sheet_name='Sheet2', index=False)
5. 从 JSON 文件导入数据
pandas
提供了 read_json()
方法来读取 JSON 格式的数据:
df = pd.read_json('data.json')
print(df.head())
-
如果 JSON 文件是嵌套的,
pandas
会自动进行适当的展开和转换。 -
可以指定 JSON 文件的加载方式,例如读取 JSON 数据的根级别为字典或列表:
df = pd.read_json('data.json', orient='records') # 读取为记录格式
继续从 JSON 文件导入导出操作开始:
6. 将 DataFrame 导出为 JSON 文件(续)
pandas
的 to_json()
方法还支持其他几种常见的导出格式,以下是 orient
参数的几种选择:
records
: 每一行被转化为一个字典,适合在行级别上组织数据。split
: 将数据按“索引”、“列”和“数据”分开,形成字典结构。index
: 按索引为键,数据为值。columns
: 按列名为键,数据为值。values
: 输出一个嵌套数组。
举个例子:
# 使用 records 格式
df.to_json('output.json', orient='records')
# 使用 split 格式
df.to_json('output_split.json', orient='split')
# 使用 index 格式
df.to_json('output_index.json', orient='index')
# 使用 columns 格式
df.to_json('output_columns.json', orient='columns')
# 使用 values 格式
df.to_json('output_values.json', orient='values')
pandas文件读写相关介绍就到这里了,欢迎大家关注和留言讨论