Pandas 导入 CSV 文件作为 Pandas DataFrame

Pandas 导入 CSV 文件作为 Pandas DataFrame

在本文中,我们将介绍如何在 Pandas 中使用 read_csv() 方法导入 CSV 文件并将其转换为 Pandas DataFrame。Pandas 是一个流行的 Python 数据分析库,它提供了一系列强大且灵活的功能,用于处理和分析结构化的数据。而 CSV 是一种经典的文本文件格式,它以逗号作为分隔符来表示数据元素间的关系,特别适用于存储和传输表格数据。

阅读更多:Pandas 教程

Pandas 的 read_csv() 方法

read_csv() 是 Pandas 中用于读取 CSV 文件的方法,它支持多种参数配置以满足不同情况的需求。下面是一些常用的参数:

  • filepath_or_buffer:CSV 文件的路径或 URL 地址;
  • sep:数据元素的分隔符,默认为逗号;
  • delimiter:数据元素的定界符,等价于 sep 参数;
  • header:指定哪一行作为列名,可以是行数或列名,默认为 0,表示第一行;
  • names:指定列名,如果 header=None,则可以自定义列名;
  • index_col:指定某个列为索引,可以是列数或列名,默认为 None;
  • usecols:指定需要读取的列,可以是列数或列名,也可以是一个列表;
  • dtype:指定每列的数据类型,可以是 Python 内置类型或 NumPy 数据类型;
  • encoding:指定文件编码方式,如 UTF-8、GBK 等,默认为 None,表示自动检测。

除了这些参数外,read_csv() 还支持其他一些高级参数,如正则表达式、将 NaN 值转换为指定值等,有兴趣的读者可以参考文档进行深入了解。

读取 CSV 文件示例

下面我们通过编写一个示例程序,来演示如何读取一个本地 CSV 文件并显示 DataFrame 的情况。我们使用的数据集来自于 UCI Machine Learning Repository 中的 Wine Quality Data Set,它包含红酒的化学成分和感官评分共 12 个变量,共计 1,599 条观测值。

import pandas as pd

wine_data = pd.read_csv('winequality-red.csv')

print(wine_data.head())  # 显示前 5 行
Python

输出结果如下所示:

   fixed acidity  volatile acidity  citric acid  ...  sulphates  alcohol  quality
0             7.4              0.70         0.00  ...       0.56      9.4        5
1             7.8              0.88         0.00  ...       0.68      9.8        5
2             7.8              0.76         0.04  ...       0.65      9.8        5
3            11.2              0.28         0.56  ...       0.58      9.8        6
4             7.4              0.70         0.00  ...       0.56      9.4        5

[5 rows x 12 columns]
Python

可以看到,read_csv() 方法返回的是一个 DataFrame 对象,它包含了我们所读取的所有数据。其中每一列的名称是自动生成的,而且在第一行数据中已经包含了所有变量的名称和值。此外,head() 方法可以用来显示 DataFrame 的前几行数据,默认显示前 5 行。

读取 CSV 文件的高级用法

除了上面提到的一些基本参数以外,read_csv() 还支持许多更为高级的用法。下面我们来介绍其中一些常用的技巧。

1. 跳过头部和尾部

有时候 CSV 文件中的头部或尾部可能包含了一些无用的信息,可以使用 skiprowsskipfooter 参数来跳过这些行。例如,我们可以改写上面的示例程序,只显示前 3 行:

import pandas as pd

wine_data = pd.read_csv('winequality-red.csv', skiprows=1, nrows=3)

print(wine_data)
Python

输出结果如下所示:

   7.4   0.7  0.0  1.9  0.076  11.0    34   0.99780  3.51  0.56  9.4  5
0  7.8  0.88  0.0  2.6  0.098  25.0    67  0.99680  3.20  0.68  9.8  5
1  7.8  0.76  0.0  2.3  0.092  15.0    54  0.99700  3.26  0.65  9.8  5
Python

因为我们使用 skiprows=1 参数,所以第一行数据被跳过了;而 nrows=3 参数指示只读取前 3 行数据。可以看到,DataFrame 的列名仍然是默认产生的,因为我们没有指定头部信息。

2. 指定缺失值

在 CSV 文件中,一些单元格可能没有值,通常用空格或空白符表示。这些缺失值可能会对后续的分析造成影响,因此我们可以使用 na_values 参数来指定需要替换为空值的字符串。例如,如果我们将空白符(' ')和问号('?')都视作缺失值,可以这样写:

import pandas as pd

wine_data = pd.read_csv('winequality-red.csv', na_values=[' ', '?'])

print(wine_data.head())
Python

这里我们只显示 DataFrame 的前 5 行,输出结果如下所示:

   fixed acidity  volatile acidity  citric acid  ...  sulphates  alcohol  quality
0             7.4              0.70         0.00  ...       0.56      9.4        5
1             7.8              0.88         0.00  ...       0.68      9.8        5
2             7.8              0.76         0.04  ...       0.65      9.8        5
3            11.2              0.28         0.56  ...       0.58      9.8        6
4             7.4              0.70         0.00  ...       0.56      9.4        5

[5 rows x 12 columns]
Python

可以发现,DataFrame 中的一些单元格出现了 NaN 值,表示这些值在 CSV 文件中原本是缺失的。

3. 跳过注释行

有些 CSV 文件中可能包含注释行,这些行以 # 或其他字符开头,不属于有效数据。我们可以使用 comment 参数来指示如何跳过这些行,并将它们视为注释。例如,如果我们的 CSV 文件中注释行以 # 开头,可以这样写:

import pandas as pd

wine_data = pd.read_csv('winequality-red.csv', comment='#')

print(wine_data.head())
Python

输出结果与上面的示例相同。注意,该方法只会跳过行首以注释符开头的行,如果注释出现在行中央,则只是被解析为普通的字符串。

4. 自定义分隔符和引用符

有时候 CSV 文件的格式不太规范,分隔符和引用符可能与默认值不同。例如,一些 CSV 文件使用制表符(\t)或分号(;)作为分隔符,或者使用单引号(')或双引号(")作为引用符。在这种情况下,我们可以使用 sepquotechar 参数来自定义分隔符和引用符。例如,如果 CSV 文件的分隔符是制表符,引用符是单引号,可以这样写:

import pandas as pd

wine_data = pd.read_csv('winequality-red.tsv', sep='\t', quotechar="'")

print(wine_data.head())
Python

注意,这里我们需要将文件后缀改为 .tsv,以便 Pandas 可以识别它为制表符分隔符的文件。输出结果与上面的示例相同,只是分隔符和引用符被自定义了。

总结

在本文中,我们介绍了如何使用 Pandas 的 read_csv() 方法读取 CSV 文件,并将其转换为 Pandas DataFrame。我们讨论了一些常用的参数,如文件路径、分隔符、列名、索引、数据类型等,以及一些高级用法,如跳过头部和尾部、指定缺失值、跳过注释行、自定义分隔符和引用符等。希望读者通过本文的介绍,能够掌握 Pandas 读取 CSV 文件的基本用法,并在实际项目中加以应用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册