如何将数值 'species' 转换为 Iris 数据集中的类别
How to convert numerical 'species' into categories in Iris dataset
我正在使用来自 sklearn
的 Iris 数据集。到目前为止,这是我的代码:
iris = datasets.load_iris()
data = pd.DataFrame(iris['data'])
target = pd.DataFrame(iris['target'])
frames = [data,target]
iris = pd.concat(frames,axis=1)
iris.columns = ['sepal_length','sepal_width','petal_length','petal_width','species']
def convert_target(data):
if data == 0:
return 'setosa'
elif data == 1:
return 'versicolor'
else:
return 'virginica'
iris['species'] = iris['species'].apply(convert_target)
观察我如何使用 convert_target
函数将物种从数值转换为分类值。我的问题是,有没有更好更有效的方法来做到这一点?
你可以做到 map
:
d = {0: 'setosa', 1: 'versicolor', 2: 'virginica'}
iris['species'] = iris['species'].map(d)
你也可以使用 numpy 索引:
cat_names = np.array(['setosa', 'versicolor', 'virginica'])
iris['species'] = cat_names[iris['species']]
而不是 map
,您可以使用 replace
使用字典:
iris['species'] = iris['species'].replace({0:'setosa',1:'versicolor',2:'virginica'})
iris.samle(5)
sepal_length sepal_width petal_length petal_width species
3 4.6 3.1 1.5 0.2 setosa
73 6.1 2.8 4.7 1.2 versicolor
138 6.0 3.0 4.8 1.8 virginica
6 4.6 3.4 1.4 0.3 setosa
140 6.7 3.1 5.6 2.4 virginica
我正在使用来自 sklearn
的 Iris 数据集。到目前为止,这是我的代码:
iris = datasets.load_iris()
data = pd.DataFrame(iris['data'])
target = pd.DataFrame(iris['target'])
frames = [data,target]
iris = pd.concat(frames,axis=1)
iris.columns = ['sepal_length','sepal_width','petal_length','petal_width','species']
def convert_target(data):
if data == 0:
return 'setosa'
elif data == 1:
return 'versicolor'
else:
return 'virginica'
iris['species'] = iris['species'].apply(convert_target)
观察我如何使用 convert_target
函数将物种从数值转换为分类值。我的问题是,有没有更好更有效的方法来做到这一点?
你可以做到 map
:
d = {0: 'setosa', 1: 'versicolor', 2: 'virginica'}
iris['species'] = iris['species'].map(d)
你也可以使用 numpy 索引:
cat_names = np.array(['setosa', 'versicolor', 'virginica'])
iris['species'] = cat_names[iris['species']]
而不是 map
,您可以使用 replace
使用字典:
iris['species'] = iris['species'].replace({0:'setosa',1:'versicolor',2:'virginica'})
iris.samle(5)
sepal_length sepal_width petal_length petal_width species
3 4.6 3.1 1.5 0.2 setosa
73 6.1 2.8 4.7 1.2 versicolor
138 6.0 3.0 4.8 1.8 virginica
6 4.6 3.4 1.4 0.3 setosa
140 6.7 3.1 5.6 2.4 virginica