如何更改 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()函数将ID和tenure列转换为整数:
#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
请注意, ID和tenure列已转换为 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 中将字符串转换为浮点数