如何更改 pandas 中的列类型(附示例)


pandas DataFrame 的列可以采用以下类型之一:

  • 对象(字符串)
  • int64 (整数)
  • float64 (带小数的数值)
  • 布尔值(真值或假值)
  • datetime64 (日期和时间)

将列从一种数据类型转换为另一种数据类型的最简单方法是使用astype()函数。

您可以将以下方法与astype()函数结合使用,将列从一种数据类型转换为另一种数据类型:

方法 1:将列转换为另一种数据类型

 df[' col1 '] = df[' col1 ']. astype (' int64 ')

方法 2:将多列转换为另一种数据类型

 df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. astype (' int64 ')

方法 3:将所有列转换为另一种数据类型

 df = df. astype (' int64 ')

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' ID ': ['1', '2', '3', '4', '5', '6'],
                   ' tenure ': [12.443, 15.8, 16.009, 5.06, 11.075, 12.9546],
                   ' sales ': [5, 7, 7, 9, 12, 9]})

#view DataFrame
print (df)

  ID tenure sales
0 1 12.4430 5
1 2 15.8000 7
2 3 16.0090 7
3 4 5.0600 9
4 5 11.0750 12
5 6 12.9546 9

#view data type of each column
print ( df.dtypes )

object ID
tenure float64
dirty int64
dtype:object

示例 1:将列转换为另一种数据类型

以下代码演示如何使用astype()函数将tenure列从浮点型转换为整数:

 #convert tenure column to int64
df[' tenure '] = df[' tenure ']. astype (' int64 ')

#view updated data type for each column
print ( df.dtypes )

object ID
tenure int64
dirty int64
dtype:object

请注意, tenure列已转换为 int64,而所有其他列保留其原始数据类型。

示例 2:将多列转换为另一种数据类型

以下代码演示如何使用astype()函数将IDtenure列转换为整数:

 #convert ID and tenure columns to int64
df[[' ID ', ' tenure ']] = df[[' ID ', ' tenure ']]. astype (' int64 ')

#view updated data type for each column
print ( df.dtypes )

ID int64
tenure int64
dirty int64
dtype:object

请注意, IDtenure列已转换为 int64。

示例 3:将所有列转换为另一种数据类型

以下代码演示了如何使用astype()函数将 DataFrame 中的所有列转换为整数数据类型:

 #convert all columns to int64
df = df. astype (' int64 ')

#view updated data type for each column
print ( df.dtypes )

ID int64
tenure int64
dirty int64
dtype:object

请注意,所有列均已转换为 int64。

注意:您可以在此处找到 pandas astype()函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见转换:

如何将 Pandas DataFrame 列转换为字符串
如何在 Pandas 中将时间戳转换为日期/时间
如何将 DateTime 转换为 Pandas 中的日期
如何在 Pandas 中将字符串转换为浮点数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注