Pandas DataFrame Astype 方法

Beginner

介绍

在本实验中,我们将学习如何在 Python 的 Pandas 库中使用 astype() 方法。astype() 方法允许我们将 Pandas DataFrame 的数据类型转换为指定的类型。我们可以转换 DataFrame 中所有列或特定列的数据类型。

虚拟机提示

虚拟机启动完成后,点击左上角切换到 Notebook 标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。在实验结束后提供反馈,我们将及时为你解决问题。

转换 DataFrame 所有列的数据类型

我们可以使用 astype() 方法将 DataFrame 中所有列的数据类型转换为指定的类型。以下是一个示例:

import pandas as pd

## 创建一个 DataFrame
data = {'A':[1,2,3,4,5],'B':[6,7,8,9,10]}
df = pd.DataFrame(data)

print("----转换 DataFrame 数据类型之前-----")
print(df.dtypes)

## 将所有列的数据类型转换为 int32
df = df.astype('int32')

print("----转换 DataFrame 数据类型之后-----")
print(df.dtypes)

输出:

----转换 DataFrame 数据类型之前-----
A int64
B int64
dtype: object

----转换 DataFrame 数据类型之后-----
A int32
B int32
dtype: object

在这个示例中,我们创建了一个包含两列 AB 的 DataFrame。在转换数据类型之前,两列的数据类型均为 int64。使用 astype() 方法并传入参数 'int32' 后,两列的数据类型均被转换为 int32。

转换 DataFrame 特定列的数据类型

我们也可以使用 astype() 方法转换 DataFrame 中特定列的数据类型。以下是一个示例:

import pandas as pd

## 创建一个 DataFrame
data = {'A':[1,2,3,4,5],'B':[6,7,8,9,10]}
df = pd.DataFrame(data)

print("----转换 DataFrame 数据类型之前-----")
print(df.dtypes)

## 将列 'A' 的数据类型转换为 int32
df['A'] = df['A'].astype('int32')

print("----转换 DataFrame 单列数据类型之后-----")
print(df.dtypes)

输出:

----转换 DataFrame 数据类型之前-----
A int64
B int64
dtype: object

----转换 DataFrame 单列数据类型之后-----
A int32
B int64
dtype: object

在这个示例中,我们创建了一个包含两列 AB 的 DataFrame。在转换数据类型之前,列 A 的数据类型为 int64,列 B 的数据类型也为 int64。在列 A 上使用 astype() 方法并传入参数 'int32' 后,只有列 A 的数据类型被转换为 int32,而列 B 的数据类型仍保持为 int64。

检查转换后的 DataFrame

在转换 DataFrame 的数据类型后,我们可以检查更新后的 DataFrame 以验证转换是否成功。以下是一个示例:

import pandas as pd

## 创建一个 DataFrame
data = {'A':[1,2,3,4,5],'B':[6,7,8,9,10]}
df = pd.DataFrame(data)

print("----转换 DataFrame 单列数据类型之后-----")
df['B'] = df['B'].astype('float')
print(df.dtypes)
print("-----转换为 float 数据类型后的 DataFrame-----")
print(df)

输出:

----转换 DataFrame 单列数据类型之后-----
A int64
B float64
dtype: object

-----转换为 float 数据类型后的 DataFrame-----
   A     B
0  1   6.0
1  2   7.0
2  3   8.0
3  4   9.0
4  5  10.0

在这个示例中,我们创建了一个包含两列 AB 的 DataFrame。在列 B 上使用 astype() 方法并传入参数 'float' 后,列 B 的数据类型被转换为 float64。我们随后打印 DataFrame 的数据类型以确认更改,并打印 DataFrame 本身以查看更新后的值。

总结

在本实验中,我们学习了如何使用 Pandas 中的 astype() 方法来转换 DataFrame 的数据类型。我们了解了如何使用 astype() 方法转换所有列或特定列的数据类型,并在转换后检查了结果 DataFrame。astype() 方法在操作和转换 Pandas DataFrame 中的数据时非常有用。