我试图将数据框架的某一列
df
转换为分类数据类型!或者R编程中所说的
factor
。
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.array([[1,1,2,2,3,3]]))
df = df.T
df[0].describe()
yields
count 6.000000
mean 2.000000
std 0.894427
min 1.000000
25% 1.250000
50% 2.000000
75% 2.750000
max 3.000000
Name: 0, dtype: float64
在我转换为'类别'之后
df[0] = df[0].astype('category')
df[0].describe()
yields
count 6
unique 3
top 3
freq 2
Name: 0, dtype: int64
Expected Output:在我通过使用正确的代码(我正在努力弄清楚)将某一列的数据类型转换为一个类别后,我希望df[0].describe()
能显示如下内容
dtype: category
Categories (3, object): [1, 2, 3]
我想我有点知道我在哪里出了问题。我觉得我需要在转换为分类数据类型时明确提到不同的类别或不同的级别。如果你能给我指出这样做的正确方向,我将非常高兴。
是否每一个具有object
数据类型的列都可以被认为是一个category
数据类型?如果你能强调 "对象 "数据类型和 "类别 "之间的一些主要区别,将会很有帮助。
另外,在为机器学习实现一键编码时,我了解到,它是用来将分类特征转换为数字特征的,因此你可以将它们插入 sci-kit learn。那么(用更正式的术语来说),这是否意味着,一键编码将有助于把object
或category
的数据类型转换为int64
的数据类型?
QUESTION RESOLVED from comments:输入df[0]和df[0].describe()有区别,简单的打印df[0]
显示数据类型为category
,而,df[0].describe()
显示为int64。