我正在使用来自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
函数将物种从数值转换为分类值。我的问题是,有没有更好更有效的方法来做到这一点?
3条答案
按热度按时间x8goxv8g1#
你可以做
map
:你也可以使用numpy索引:
i2loujxw2#
除了
map
,你还可以使用replace
来使用字典:hec6srdp3#
最简单的答案是所有这些答案的组合。从目标名称创建一个字典。我使用了两个变量。首先我创建了一个temp1来创建一个列表,然后我使用temp2基于列表中名称的位置创建了一个字典。现在数据框列res[“Y”]被创建的字典替换。这是一个更通用的方法,适用于所有scikit数据集