更改pandas数据帧中一列的值

时间:2017-11-27 17:35:37

标签: python pandas dataframe

如何将第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

我很感激帮助。

3 个答案:

答案 0 :(得分:1)

df.iloc[df["4"]=="Iris-setosa","4"]=1
df.iloc[df["4"]=="Iris-virginica","4"]=-1

答案 1 :(得分:1)

我会做这样的事情

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是您的数据框

答案 2 :(得分:0)

听起来像

df['4'] = np.where(df['4'] == 'Iris-setosa', 1, -1)

应该做的工作