例子编号 | 描述 | 参数/功能 | 代码示例(部分) | 预期结果描述 |
---|---|---|---|---|
1 | 基本读取 | - | pd.read_csv('data.csv') |
数据集前 5 行 |
2 | 指定分隔符 | sep='\t' |
pd.read_csv('data.tsv', sep='\t') |
制表符分隔的前 5 行 |
3 | 忽略首行 | header=None |
pd.read_csv('data.csv', header=None) |
不含标题行的前 5 行 |
4 | 指定列名 | names 列表 |
pd.read_csv('data.csv', names=names) |
指定列名的前 5 行 |
5 | 跳过错误行 | skiprows , skip_blank_lines |
pd.read_csv('data.csv', skiprows=1, skip_blank_lines=True) |
跳过错误行的前 5 行 |
6 | 指定列的数据类型 | dtype 字典 |
pd.read_csv('data.csv', dtype=dtypes) |
指定数据类型的前 5 行 |
7 | 使用索引列 | index_col |
pd.read_csv('data.csv', index_col='Name') |
以 ‘Name’ 为索引的前 5 行 |
8 | 处理日期列 | parse_dates |
pd.read_csv('data.csv', parse_dates=['Date']) |
日期列为日期时间对象的前 5 行 |
9 | 限定读取行数 | nrows |
pd.read_csv('data.csv', nrows=10) |
前 10 行 |
10 | 合并多个 CSV 文件 | glob , pd.concat |
pd.concat([pd.read_csv(file) for file in files]) |
合并后数据集的前 5 行 |
11 | 自动检测编码 | `` | `` | 检测编码后读取 |
11 | 在读取时忽略错误字符 | `` | df = pd.read_csv('data.csv', encoding='utf-8', errors='ignore') |
import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())
df = pd.read_csv('data.tsv', sep='\t')
print(df.head())
df = pd.read_csv('data.csv', header=None)
print(df.head())
names = ['Name', 'Age', 'Gender']
df = pd.read_csv('data.csv', names=names)
print(df.head())
df = pd.read_csv('data.csv', skiprows=1, skip_blank_lines=True)
print(df.head())
dtypes = {'Age': int, 'Gender': 'category'}
df = pd.read_csv('data.csv', dtype=dtypes)
print(df.head())
df = pd.read_csv('data.csv', index_col='Name')
print(df.head())
df = pd.read_csv('data.csv', parse_dates=['Date'])
print(df.head())
df = pd.read_csv('data.csv', nrows=10)
print(df.head())
import glob
files = glob.glob('data/*.csv')
dfs = [pd.read_csv(file) for file in files]
df = pd.concat(dfs)
print(df.head())
Pandas没有内置的自动检测编码的功能,但是你可以手动尝试使用Python的chardet
库来检测文件的编码:
import chardet
with open('file_path.csv', 'rb') as f:
result = chardet.detect(f.read()) # 检测编码
encoding = result['encoding']
df = pd.read_csv('file_path.csv', encoding=encoding)
以utf-8读取csv文件,在读取时忽略错误字符
df = pd.read_csv('data.csv', encoding='utf-8', errors='ignore')