📅  最后修改于: 2023-12-03 15:22:10.681000             🧑  作者: Mango
在数据分析或机器学习中,常常要选择分类数据或数值数据。使用 pandas 中的 df.astype()
方法可以将一个数据框的数据类型转换为特定类型,从而轻松选择所需类型的数据。本文将介绍如何使用 df.astype()
选择分类数据和数值数据。
选择分类数据时,通常是从数据类型为字符串中选择,例如性别,颜色等。例如,在一个数据框中有一个名为 gender
的列,存储着 'male' 或 'female',我们想将其转换为分类类型。我们可以使用下面的代码实现:
import pandas as pd
# 创建数据框
data = {'name': ['John', 'Jack', 'Lucy', 'Eric'],
'gender': ['male', 'male', 'female', 'female'],
'age': [23, 25, 27, 30]}
df = pd.DataFrame(data)
# 将 gender 转换为分类类型
df['gender'] = df['gender'].astype('category')
这里我们使用了 astype()
方法将 gender
列转换为分类类型。我们也可以用 dtype
属性检查转换结果:
print(df['gender'].dtype)
输出:
category
选择数值数据时,通常是从数据类型为数字中选择,例如工资,数量等。我们可以使用下面的代码将一个字符型数据框转换为数值型数据框:
# 创建数据框
data = {'name': ['John', 'Jack', 'Lucy', 'Eric'],
'gender': ['male', 'male', 'female', 'female'],
'age': [23, 25, 27, 30],
'salary': ['$5000', '$6000', '$7000', '$8000']}
df = pd.DataFrame(data)
# 将 salary 转换为数值类型
df['salary'] = df['salary'].str.replace('$', '').astype('int')
# 按 salary 排序
df = df.sort_values(by=['salary'])
这里我们使用了 astype()
方法与 str.replace()
方法将 salary
转换为数值类型。我们也可以用 dtypes
属性检查结果:
print(df.dtypes)
输出:
name object
gender object
age int64
salary int64
dtype: object
使用 df.astype()
方法可以轻松地选择分类数据和数值数据,并在数据分析和机器学习中使用。以上就是关于如何使用 df.astype()
选择分类数据和数值数据的介绍,希望对你有所帮助!