更改pandas datafram中一列的值

2024-06-08 14:36:05 发布

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

如何将第4列的值更改为1和-1,以便将Iris setosa替换为1,将Iris virginica替换为-1?

      0    1    2    3           4
0    5.1  3.5  1.4  0.2     Iris-setosa
1    4.9  3.0  1.4  0.2     Iris-setosa
2    4.7  3.2  1.3  0.2     Iris-setosa
3    4.6  3.1  1.5  0.2     Iris-setosa
4    5.0  3.6  1.4  0.2     Iris-setosa
5    5.4  3.9  1.7  0.4     Iris-setosa
6    4.6  3.4  1.4  0.3     Iris-setosa
..   ...  ...  ...  ...             ...
120  6.9  3.2  5.7  2.3  Iris-virginica
121  5.6  2.8  4.9  2.0  Iris-virginica
122  7.7  2.8  6.7  2.0  Iris-virginica
123  6.3  2.7  4.9  1.8  Iris-virginica
124  6.7  3.3  5.7  2.1  Iris-virginica
125  7.2  3.2  6.0  1.8  Iris-virginica
126  6.2  2.8  4.8  1.8  Iris-virginica

我很感激你的帮助。


Tags: irissetosavirginica
3条回答

我想做这样的事

def encode_row(self, row):
    if row[4] == "Iris-setosa":
        return 1
    return -1

df_test[4] = df_test.apply(lambda row : self.encode_row(row), axis=1)

假设df_test是您的数据帧

您可以使用替换

d = {'Iris-setosa': 1, 'Iris-virginica': -1}
df['4'].replace(d,inplace = True)

    0   1   2   3   4
0   5.1 3.5 1.4 0.2 1
1   4.9 3.0 1.4 0.2 1
2   4.7 3.2 1.3 0.2 1
3   4.6 3.1 1.5 0.2 1
4   5.0 3.6 1.4 0.2 1
5   5.4 3.9 1.7 0.4 1
6   4.6 3.4 1.4 0.3 1
..  ... ... ... ... ...
120 6.9 3.2 5.7 2.3 -1
121 5.6 2.8 4.9 2.0 -1
122 7.7 2.8 6.7 2.0 -1
123 6.3 2.7 4.9 1.8 -1
124 6.7 3.3 5.7 2.1 -1
125 7.2 3.2 6.0 1.8 -1
126 6.2 2.8 4.8 1.8 -1
df.iloc[df["4"]=="Iris-setosa","4"]=1
df.iloc[df["4"]=="Iris-virginica","4"]=-1

相关问题 更多 >