在Pandas中将分类变量转换为数字变量需要使用pandas.Categorical
和pandas.factorize
方法。
具体步骤如下:
Categorical
数据类型df['category_column'] = pd.Categorical(df['category_column'])
factorize()
方法将分类变量转换为数字变量df['category_column'] = pd.factorize(df['category_column'])[0]
下面是一个简单的示例代码,展示如何使用Categorical
和factorize()
方法将一个DataFrame的所有分类变量转换为数字变量:
import pandas as pd
# 创建一个包含分类变量的DataFrame
df = pd.DataFrame({'fruit': ['apple', 'banana', 'apple', 'banana', 'orange', 'banana'],
'color': ['red', 'yellow', 'green', 'yellow', 'orange', 'yellow']})
# 将所有分类变量转换为Categorical数据类型
for col in df.select_dtypes(include='object').columns:
df[col] = pd.Categorical(df[col])
# 使用factorize()方法将所有Categorical列转换为数字列
for col in df.select_dtypes(include='category').columns:
df[col] = pd.factorize(df[col])[0]
print(df)
输出结果如下:
fruit color
0 0 0
1 1 1
2 0 2
3 1 1
4 2 3
5 1 1
其中,原来的fruit
列和color
列均已被转换为数字变量。注意,在使用factorize()
方法时,需要保留返回值的第一个元素,即转换后的数字序列。
本文链接:http://task.lmcjl.com/news/14491.html