向依赖于另一列的pandas数据帧添加额外的列

2024-05-29 08:22:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我从Iris dataset创建了一个pandas数据帧,我想添加一个额外的列,名为SpecieID。这意味着鸢尾花的ID为0,Iris versicolor为1,Iris virginica为2。在

我试过密码:

def create_specie_id():
    if iris["Species"] == "Iris-setosa":
        ID = 0
    elif iris["Species"] == "Iris-versicolor":
        ID = 1
    elif iris["Species"] == "Iris-virginica":
        ID = 2
    return ID

iris = iris.assign(SpecieID = lambda x: create_specie_id())

print (iris)

但我收到了以下错误:

^{pr2}$

如何创建包含SpecieID的列?在


Tags: 数据idirispandascreatedatasetspecieselif
1条回答
网友
1楼 · 发布于 2024-05-29 08:22:53

您可以使用^{}

iris=pd.DataFrame({'Species':['Iris-setosa','Iris-versicolor','Iris-virginica', 'another']})

m1 =  iris["Species"] == "Iris-setosa"
m2 =  iris["Species"] == "Iris-versicolor"
m3 =  iris["Species"] == "Iris-virginica"

iris['ID'] = np.select([m1,m2,m3], [0,1,2], default=-1)

print (iris)
           Species  ID
0      Iris-setosa   0
1  Iris-versicolor   1
2   Iris-virginica   2
3          another  -1

另一个解决方案是通过dict-getNaN使用^{},如果值不匹配,则将^{}^{}一起添加:

^{pr2}$

相关问题 更多 >

    热门问题