本文共 2652 字,大约阅读时间需要 8 分钟。
pandas.read_csv() 是 pandas 中最强大的函数之一,用于从 CSV 文件中读取数据并加载为 DataFrame。以下是对该函数的详细解析,包括参数、用法和常见问题。
代码示例:
import pandas as pddata = pd.read_csv(filepath, **kwargs)
其中,filepath 是文件路径,可为本地路径或 URL。
sep:指定分隔符,默认为逗号(,')。
代码示例:
data = pd.read_csv('data.csv', sep=',') # 默认分隔符是逗号data = pd.read_csv('data.tsv', sep='\t') # 使用制表符data = pd.read_csv('data.txt', sep=' ') # 使用空格分隔 encoding:文件编码格式,默认为 utf-8。
代码示例:
data = pd.read_csv('data.csv', encoding='utf-8') # 默认编码data = pd.read_csv('data.csv', encoding='gbk') # 中文文件使用 gbk 编码 na_values:指定哪些值视为缺失值,默认包括 NaN、空字符串等。
代码示例:
data = pd.read_csv('data.csv', na_values=['NULL', '-1']) # 指定多个缺失值data = pd.read_csv('data.csv', na_values=['None'], keep_default_na=False) # 只使用指定的缺失值 usecols:选择读取的列,支持列名列表或索引列表。
代码示例:
data = pd.read_csv('data.csv', usecols=['col1', 'col2']) # 读取指定列data = pd.read_csv('data.csv', usecols=[0, 1]) # 按索引读取 skiprows:跳过前几行,支持行号列表。
代码示例:
data = pd.read_csv('data.csv', skiprows=2) # 跳过前两行data = pd.read_csv('data.csv', skiprows=[0, 2]) # 跳过特定行 index_col:指定哪一列作为 DataFrame 的索引。
代码示例:
data = pd.read_csv('data.csv', index_col='id') # 指定列作为索引data = pd.read_csv('data.csv', index_col=0) # 第一列作为索引 dtype:强制指定列的数据类型,默认自动推断。
代码示例:
data = pd.read_csv('data.csv', dtype={'col1': int, 'col2': float}) nrows:读取前 n 行。
代码示例:
data = pd.read_csv('data.csv', nrows=100) # 读取前 100 行 chunksize:按块读取大文件。
代码示例:
chunk_iter = pd.read_csv('data.csv', chunksize=1000)for chunk in chunk_iter: print(chunk.head()) header:指定列名行,默认为第一行。
代码示例:
data = pd.read_csv('data.csv', header=0) # 第一行是列名data = pd.read_csv('data.csv', header=None, names=['col1', 'col2', 'col3']) # 自定义列名 delimiter:与 sep 相同,指定分隔符。
quotechar:引用字符,默认为双引号('"')。
代码示例:
data = pd.read_csv('data.csv', sep=',', quotechar='"') error_bad_lines:处理坏行,默认已弃用,建议使用 on_bad_lines='skip'。
代码示例:
data = pd.read_csv('data.csv', on_bad_lines='skip') 代码示例:
data = pd.read_csv('data.csv', sep=',', encoding='utf-8', nrows=10)print(data.head()) 文件内容示例:
# 注释行ID,Name,Age,City1,Alice,30,NewYork2,Bob,25,LosAngeles3,Charlie,,Chicago
代码示例:
data = pd.read_csv('data.csv', sep=',', comment='#', na_values=[''])print(data) 输出结果:
ID Name Age City0 Alice 30.0 NewYork1 Bob 25.0 LosAngeles2 Charlie NaN Chicago
代码示例:
chunk_iter = pd.read_csv('large_data.csv', chunksize=10000)for chunk in chunk_iter: print(chunk.shape) data = pd.read_csv('data.csv', encoding='latin1') data = pd.read_csv('data.csv', sep=r'\s+') chunksize 分块处理,或仅加载特定列和行。转载地址:http://ypvfk.baihongyu.com/