Pandas 导入 CSV 文件作为 Pandas DataFrame

您所在的位置:网站首页 pandas读取文件csv Pandas 导入 CSV 文件作为 Pandas DataFrame

Pandas 导入 CSV 文件作为 Pandas DataFrame

2024-04-28 05:17| 来源: 网络整理| 查看: 265

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 行

输出结果如下所示:

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]

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

读取 CSV 文件的高级用法

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

1. 跳过头部和尾部

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

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

输出结果如下所示:

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

因为我们使用 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())

这里我们只显示 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]

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

3. 跳过注释行

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

import pandas as pd wine_data = pd.read_csv('winequality-red.csv', comment='#') print(wine_data.head())

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

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

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

import pandas as pd wine_data = pd.read_csv('winequality-red.tsv', sep='\t', quotechar="'") print(wine_data.head())

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

总结

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3