【Python】进阶学习:pandas.read_csv()用法详解

在数据科学和数据分析领域,pandas 是最常用的 Python 库之一。它提供了强大的数据结构和数据分析工具。read_csv()pandas 中最常用的函数之一,用于从 CSV 文件中读取数据并将其转换为 DataFrame。在这篇博客中,我们将详细介绍 read_csv() 的用法,并通过多个示例帮助你掌握这一函数。


🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。CSDN优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:gylzbk

💬 博主粉丝群介绍:① 群内高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

@TOC

在这里插入图片描述

1️⃣ 基本用法

1.1 导入库

首先,我们需要导入 pandas 库:

import pandas as pd

1.2 读取CSV文件

使用 read_csv() 函数读取 CSV 文件,并将其转换为 DataFrame

df = pd.read_csv('example.csv')
print(df)

假设 example.csv 文件内容如下:

name,age,city
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago

运行上述代码将输出:

      name  age         city
0    Alice   30     New York
1      Bob   25  Los Angeles
2  Charlie   35      Chicago

2️⃣ 常用参数

2.1 sep:指定分隔符

默认情况下,read_csv() 使用逗号作为分隔符。如果你的文件使用其他分隔符(例如制表符),可以使用 sep 参数:

df = pd.read_csv('example.tsv', sep='\t')
print(df)

2.2 header:指定表头行

默认情况下,read_csv() 将第一行作为表头。如果你的文件没有表头,或者表头在其他行,可以使用 header 参数:

df = pd.read_csv('example.csv', header=1)  # 表头在第二行
print(df)

2.3 names:指定列名

如果你的文件没有表头,可以使用 names 参数指定列名:

df = pd.read_csv('example_no_header.csv', names=['name', 'age', 'city'])
print(df)

2.4 index_col:指定索引列

默认情况下,read_csv() 使用默认整数索引。如果你希望某一列作为索引,可以使用 index_col 参数:

df = pd.read_csv('example.csv', index_col='name')
print(df)

2.5 usecols:指定读取的列

如果你只需要读取部分列,可以使用 usecols 参数:

df = pd.read_csv('example.csv', usecols=['name', 'city'])
print(df)

2.6 dtype:指定列的数据类型

可以使用 dtype 参数指定列的数据类型:

df = pd.read_csv('example.csv', dtype={'age': 'float'})
print(df)

2.7 parse_dates:解析日期

如果某列包含日期,可以使用 parse_dates 参数将其解析为日期类型:

df = pd.read_csv('example_with_dates.csv', parse_dates=['birthday'])
print(df)

3️⃣ 高级用法

3.1 na_values:处理缺失值

可以使用 na_values 参数指定哪些值应视为缺失值:

df = pd.read_csv('example_with_na.csv', na_values=['NA', 'N/A', '-'])
print(df)

3.2 skiprows:跳过行

可以使用 skiprows 参数跳过文件的某些行:

df = pd.read_csv('example.csv', skiprows=2)  # 跳过前两行
print(df)

3.3 nrows:读取指定行数

可以使用 nrows 参数指定读取的行数:

df = pd.read_csv('example.csv', nrows=2)  # 只读取前两行
print(df)

3.4 chunksize:分块读取

对于大文件,可以使用 chunksize 参数分块读取:

chunk_size = 2
chunks = pd.read_csv('example.csv', chunksize=chunk_size)
for chunk in chunks:
    print(chunk)

3.5 encoding:指定文件编码

如果文件使用非默认编码,可以使用 encoding 参数指定编码:

df = pd.read_csv('example.csv', encoding='utf-8')
print(df)

4️⃣ 实战示例

示例一:读取包含日期的CSV文件

假设我们有一个包含日期的 CSV 文件 example_with_dates.csv,内容如下:

name,age,birthday,city
Alice,30,1990-01-01,New York
Bob,25,1995-05-15,Los Angeles
Charlie,35,1985-08-20,Chicago

我们希望将 birthday 列解析为日期类型,并将 name 列作为索引:

import pandas as pd

# 读取CSV文件并解析日期
df = pd.read_csv('example_with_dates.csv', parse_dates=['birthday'], index_col='name')
print(df)

运行上述代码将输出:

         age   birthday         city
name                                 
Alice     30 1990-01-01     New York
Bob       25 1995-05-15  Los Angeles
Charlie   35 1985-08-20      Chicago

示例二:处理缺失值和指定数据类型

假设我们有一个 CSV 文件 example_with_na.csv,内容如下:

name,age,city
Alice,30,New York
Bob,NA,Los Angeles
Charlie,35,NA

我们希望将 NA 视为缺失值,并将 age 列解析为浮点数:

import pandas as pd

# 读取CSV文件并处理缺失值
df = pd.read_csv('example_with_na.csv', na_values=['NA'], dtype={'age': 'float'})
print(df)

运行上述代码将输出:

      name   age         city
0    Alice  30.0     New York
1      Bob   NaN  Los Angeles
2  Charlie  35.0          NaN

示例三:分块读取大文件

假设我们有一个非常大的 CSV 文件 large_example.csv,我们希望分块读取并处理每个块:

import pandas as pd

# 分块读取CSV文件
chunk_size = 2
chunks = pd.read_csv('large_example.csv', chunksize=chunk_size)

for chunk in chunks:
    print(chunk)

假设 large_example.csv 文件内容如下:

name,age,city
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago
David,40,Houston
Eve,28,San Francisco

运行上述代码将输出:

      name  age         city
0    Alice   30     New York
1      Bob   25  Los Angeles
      name  age      city
2  Charlie   35   Chicago
3    David   40   Houston
  name  age             city
4  Eve   28  San Francisco

示例四:跳过行和指定读取行数

假设我们有一个 CSV 文件 example.csv,内容如下:

name,age,city
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago
David,40,Houston
Eve,28,San Francisco

我们希望跳过前两行,并只读取接下来的两行:

import pandas as pd

# 跳过前两行,并只读取接下来的两行
df = pd.read_csv('example.csv', skiprows=2, nrows=2)
print(df)

运行上述代码将输出:

      Charlie  35      Chicago
0      David   40      Houston

示例五:指定列名和使用特定列

假设我们有一个没有表头的 CSV 文件 example_no_header.csv,内容如下:

Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago

我们希望指定列名,并只读取 namecity 列:

import pandas as pd

# 读取CSV文件并指定列名
df = pd.read_csv('example_no_header.csv', names=['name', 'age', 'city'], usecols=['name', 'city'])
print(df)

运行上述代码将输出:

      name         city
0    Alice     New York
1      Bob  Los Angeles
2  Charlie      Chicago

5️⃣ 总结

通过这篇博客,我们详细介绍了 pandas 库中 read_csv() 函数的用法。read_csv() 是一个功能强大的工具,能够满足各种复杂的 CSV 文件读取需求。以下是我们讨论的主要内容:

5.1 基本用法

  • 导入 pandas 库。
  • 使用 read_csv() 函数读取 CSV 文件并转换为 DataFrame

5.2 常用参数

  • sep:指定分隔符。
  • header:指定表头行。
  • names:指定列名。
  • index_col:指定索引列。
  • usecols:指定读取的列。
  • dtype:指定列的数据类型。
  • parse_dates:解析日期。

5.3 高级用法

  • na_values:处理缺失值。
  • skiprows:跳过行。
  • nrows:读取指定行数。
  • chunksize:分块读取。
  • encoding:指定文件编码。

5.4 实战示例

  • 示例一:读取包含日期的 CSV 文件。
  • 示例二:处理缺失值和指定数据类型。
  • 示例三:分块读取大文件。
  • 示例四:跳过行和指定读取行数。
  • 示例五:指定列名和使用特定列。

通过这些示例,你应该能够灵活运用 read_csv() 函数来处理各种 CSV 文件。在实际工作中,掌握这些技巧可以大大提高数据处理的效率和准确性。

参考资料

pandas 库不仅提供了强大的 CSV 文件读取功能,还包括许多其他数据处理和分析工具。例如,数据过滤、分组、聚合、合并等功能。以下是一些推荐的学习资源:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I'mAlex

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值