使用Pandas DataFrame的dtypes属性在Python中查找列的数据类型

2025年1月5日 | 阅读 4 分钟

引言

数据分析和数据处理是数据科学工作流程中的两个关键操作。得益于众多库的支持,Python 中的数据处理和分析是一大亮点。Pandas(Python Data Analysis Library 或 PDL)是最流行的数据处理库之一,它能够熟练地处理结构化数据,并借助其功能强大的 DataFrame 对象来处理这些数据。在本文中,我们将探讨 Pandas 的一个特定特性——DataFrame 的 dtypes(数据类型)分类,它有助于我们可视化各个列的数据类型。

理解 Python 中的数据类型

在 Python 中,所有值都有一个数据类型,这是数据表示的正式体现。在编程中,数据类型起着决定性作用,因为对数据执行的操作集取决于数据类型。Python 可以处理多种数据类型,可有效地用于整数、浮点数、字符串、列表和字典等对象。虽然计算机可以处理这些任务,但在某些情况下,需要一个异常准确且快速的工具。

Pandas DataFrames

Pandas 提供 DataFrame,**一个二维的、带标签的构造器,可以处理不同类型的数据集**。它类似于表格或电子表格,其中所有行都有序,并且每一列都可以声明为接受不同的数据类型。这种灵活性可以扩展到现实世界中需要同步和处理各种数据流的任何情况。

访问 DataFrame 的 dtypes 属性

Pandas DataFrame 的列在后续可能包含多种类型,这可以通过 'dtypes' 属性来确认。它允许我们访问每一列的数据类型,帮助我们检查数据集的内在特征。要访问 'dtypes' 属性,我们只需将其附加到我们的 DataFrame:要访问 'dtypes' 属性,我们只需将其附加到我们的 DataFrame。

示例

输出

Name       object
Age         int64
Salary    float64
dtype: object

说明

  • 代码中包含了导入,并使用 Pandas 作为 PD。
  • 创建了一个名为 **'data'** 的字典,其中包含 'Name'、'Age' 和 'Salary' 这三个键,其值分别是包含相应数据的列表。
  • 'df = pd.DataFrame()' 执行此操作,结果是将一个名为 'df' 的新 DataFrame 分配给该变量,其中包含字典中的数据。
  • 'df.dtypes' 是一个命令,它返回 DataFrame 中每一列的数据类型,结果是一个 Pandas Series。
  • 使用 **'print()'** 打印出每一列的数据类型。

探索常见数据类型

Pandas 支持多种数据类型,可以容纳不同类型的数据。熟悉这些类型是数据分析的关键组成部分。让我们来探索 Pandas DataFrame 中遇到的一些常见数据类型。

1. Object

表示字符串或混合类型。任何不属于其他明确定义类型的数据类型都可以归类为通用对象数据类型。

2. int64 和 float64

整数和浮点数类型。这些类型用于表示整数和货币交易等。

3. datetime64[ns]

显示精确到 1/000'000'000 秒的日期和时间。这种数据类型允许我们收集有关时间值的信息。

4. bool

接受参数并返回布尔值(True 或 False)。

理解和处理数据类型转换

有时,分配给列的默认数据类型不是我们期望的。例如,包含日期范围的列最初可能被视为对象数据类型。同样,在这种情况下,必须根据类型要求处理数据,以便能够有效地分析数据。

Pandas 提供了数据类型转换机制。例如,我们可以使用 astype() 方法更改列的数据类型。

示例

Pandas 提供了数据类型转换机制。例如,我们可以使用 astype() 方法更改列的数据类型。

输出

Name       object
Age         int64
Salary    float64
dtype: object
    Name  Age  Salary
0   John   28   50000
1  Alice   24   60000
2    Bob   22   45000

说明

  • 我们从包含上述 'Name'、'Age' 和 'Salary' 列作为属性的字典数据中创建 DataFrame **'df'**。
  • DataFrame 的 "dtypes" 属性返回 DataFrame 中每一列的数据类型。
  • 我们可以通过我们的产品 **'column_data_types'** 来显示这一点,其中包含 DataFrame 中每一列的数据类型。
  • 之后,我们使用 **'astype()'** 方法将 'Salary' **列的类型更改为 'int'**。
  • 最后,我们将打印 DataFrame 以查看效果。