详细讲解 pandas.read_csv() 的用法与技巧
pandas.read_csv()
是 Pandas 库中用于读取 CSV 文件并将其转化为 DataFrame 的重要函数。下面是关于 pandas.read_csv()
的详细用法与一些常见的技巧:
基本用法
import pandas as pd
# 读取 CSV 文件
df = pd.read_csv('file.csv')
常用参数
filepath_or_buffer
:- 字符串,表示要读取的文件路径。
- 也可以是 URL,Pandas 可以直接从网上读取文件。
sep
:- 指定列分隔符,默认为逗号
','
。 - 可以自定义为其他分隔符,例如制表符
'\t'
, 分号';'
等。
- 指定列分隔符,默认为逗号
delimiter
:- 与
sep
功能相似,指定分隔符。一般使用sep
更为常见。
- 与
header
:- 用于指定作为列名的行号,默认为
0
(第一行)。 - 若文件不包含列名,可以设置为
None
。
- 用于指定作为列名的行号,默认为
names
:- 用于指定列名。若设定此参数则
header
参数失效。 - 如
names=['col1', 'col2']
。
- 用于指定列名。若设定此参数则
index_col
:- 指定使用一列或多列作索引。
- 如
index_col=0
或index_col=['col1', 'col2']
。
usecols
:- 指定要读取的列。
- 接受列名列表或列序号列表,例如
usecols=['A', 'B']
或usecols=[0, 1]
。
dtype
:- 指定列的数据类型。
- 如
dtype={'col1': int, 'col2': float}
。
na_values
:- 指定缺失值的标识。
- 如
na_values=['NA', 'None', 'NaN']
。
skiprows
:- 用于跳过文件开头的某些行。
- 如
skiprows=5
跳过前五行。
nrows
:- 读取文件的前 n 行,用于读入部分数据进行快速测试。
- 如
nrows=10
读取前十行。
parse_dates
:- 自动解析日期。
- 可以指定哪些列需要解析为日期格式, 如
parse_dates=['date_column']
。
encoding
:- 设置文件编码,默认为
None
。 - 常用于处理特殊编码文件,如
encoding='utf-8'
或encoding='ISO-8859-1'
。
- 设置文件编码,默认为
一些技巧
按块读取大文件:
- 使用
chunksize
参数分块读取,避免内存不足。
chunksize = 1000 # 按 1000 行一块读取
for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
# 对每块数据进行处理
- 使用
只读取特定行或列:
- 使用
usecols
和skiprows
,可以仅读取需要的数据以加快处理速度。
- 使用
自定义转换器:
- 使用
converters
参数,可以对某列应用特定转换函数。
df = pd.read_csv('file.csv', converters={'col_name': lambda x: x.strip()})
- 使用
通过 URL 直接读取远程文件:
pandas
可以直接从 URL 读取文件。
df = pd.read_csv('http://example.com/data.csv')
通过灵活运用这些参数和技巧,pandas.read_csv()
可以非常高效地读取和处理各种格式和大小的 CSV 文件。