• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共95篇

    python3.X - 数据分析 - Pandas

关闭

返回栏目

关闭

返回python3.X - 数据分析 - Pandas栏目

12 - 导入数据 - pd.read_csv() - 读CSV文件

作者:

贺及楼

成为作者

更新日期:2024-08-06 07:35:45

read_csv()

csv读取总结

例子编号 描述 参数/功能 代码示例(部分) 预期结果描述
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')

1: 基本读取

  • 描述:读取 CSV 文件并将其内容转换为 DataFrame。
  • 代码
    1. import pandas as pd
    2. df = pd.read_csv('data.csv')
    3. print(df.head())
  • 结果:输出数据集的前 5 行。

2: 指定分隔符

  • 描述:使用非逗号分隔符读取 CSV 文件。
  • 代码
    1. df = pd.read_csv('data.tsv', sep='\t')
    2. print(df.head())
  • 结果:输出使用制表符分隔的 CSV 文件的前 5 行。

3: 忽略首行

  • 描述:忽略 CSV 文件的标题行。
  • 代码
    1. df = pd.read_csv('data.csv', header=None)
    2. print(df.head())
  • 结果:输出不包含标题行的数据集的前 5 行。

4: 指定列名

  • 描述:为没有列名的 CSV 文件指定列名。
  • 代码
    1. names = ['Name', 'Age', 'Gender']
    2. df = pd.read_csv('data.csv', names=names)
    3. print(df.head())
  • 结果:输出包含指定列名的数据集的前 5 行。

5: 跳过错误行

  • 描述:跳过 CSV 文件中的空行或格式错误的行。
  • 代码
    1. df = pd.read_csv('data.csv', skiprows=1, skip_blank_lines=True)
    2. print(df.head())
  • 结果:跳过第一行和空行后的数据集的前 5 行。

6: 指定列的数据类型

  • 描述:指定 CSV 文件中某些列的数据类型。
  • 代码
    1. dtypes = {'Age': int, 'Gender': 'category'}
    2. df = pd.read_csv('data.csv', dtype=dtypes)
    3. print(df.head())
  • 结果:输出指定数据类型列的数据集的前 5 行。

7: 使用索引列

  • 描述:使用 CSV 文件中的一列作为 DataFrame 的索引。
  • 代码
    1. df = pd.read_csv('data.csv', index_col='Name')
    2. print(df.head())
  • 结果:输出以 ‘Name’ 列作为索引的数据集的前 5 行。

8: 处理日期列

  • 描述:将 CSV 文件中的日期列解析为日期时间对象。
  • 代码
    1. df = pd.read_csv('data.csv', parse_dates=['Date'])
    2. print(df.head())
  • 结果:输出日期列被解析为日期时间对象的数据集的前 5 行。

9: 限定读取行数

  • 描述:只读取 CSV 文件的前 N 行。
  • 代码
    1. df = pd.read_csv('data.csv', nrows=10)
    2. print(df.head())
  • 结果:输出数据集的前 10 行。

10: 合并多个 CSV 文件

  • 描述:读取同一目录下的所有 CSV 文件并合并为一个 DataFrame。
  • 代码
    1. import glob
    2. files = glob.glob('data/*.csv')
    3. dfs = [pd.read_csv(file) for file in files]
    4. df = pd.concat(dfs)
    5. print(df.head())
  • 结果:输出合并后的数据集的前 5 行。

11: 自动检测编码:

Pandas没有内置的自动检测编码的功能,但是你可以手动尝试使用Python的chardet库来检测文件的编码:

  1. import chardet
  2. with open('file_path.csv', 'rb') as f:
  3. result = chardet.detect(f.read()) # 检测编码
  4. encoding = result['encoding']
  5. df = pd.read_csv('file_path.csv', encoding=encoding)

12:在读取时忽略错误字符

以utf-8读取csv文件,在读取时忽略错误字符

  1. df = pd.read_csv('data.csv', encoding='utf-8', errors='ignore')