首页 > 解决方案 > 如果其他列值不符合条件,熊猫会更改列值

问题描述

我有以下数据框。我想检查“mental_illness”、“feeling”和“flavor”列的每一行的值。如果每行这三列的所有值都小于 0.5,我想将“未分类”列的相应值更改为 1.0。

      sent_no    pos      unclassified  mental_illness  feeling  flavor  
0        0      word_1           0.0            0.75     0.30    0.28   
1        1      word_2           0.0            0.17     0.72    0.16   
2        2      word_3           0.0            0.19     0.38    0.16   
3        3      word_4           0.0            0.39     0.20    0.14   
4        4      word_5           0.0            0.72     0.30    0.14  

预期结果:

      sent_no    pos      unclassified  mental_illness  feeling  flavor  
0        0      word_1           0.0            0.75     0.30    0.28   
1        1      word_2           0.0            0.17     0.72    0.16   
2        2      word_3           1.0            0.19     0.38    0.16   
3        3      word_4           1.0            0.39     0.20    0.14   
4        4      word_5           0.0            0.72     0.30    0.14  

我该怎么做呢?

标签: pythonpython-3.xpandas

解决方案


这行得通吗?

mask1 = df["mental_illness"] < 0.5
mask2 = df["feeling"] < 0.5
mask3 = df["flavor"] < 0.5

df.loc[mask1 & mask2 & mask3, 'unclassified'] = 1

推荐阅读