Python 基于列dataframe中的特定值替换所有值

Python 基于列dataframe中的特定值替换所有值,python,pandas,replace,Python,Pandas,Replace,我有一个这样的数据框,包含2041列 number error1 error2 ... error2040 1 0 0 ... 1 2 1 1 ... 1 3 0 1 ... 0 ... ... ... ... ... result 0.5 0.6

我有一个这样的数据框,包含2041列

number   error1   error2    ...   error2040
   1        0       0       ...       1
   2        1       1       ...       1
   3        0       1       ...       0
  ...      ...     ...      ...      ...
result     0.5      0.6               0.001
结果行是特定错误导致最终错误的概率,使用
片段计算可能不是很好,但它是有效的

现在我想根据“结果”中的概率将所有数字分为四类(错误、可能错误、没有错误、信息不足)

所以我想最简单的方法是用“result”中的特定值替换所有的值,然后根据行中的数字添加一个名为“prediction”的新列

number   error1   error2    ...   error2040    PREDICTION 
  1        0       0        ...     0.001      not faulty   
  2       0.5     0.6       ...     0.001      FAULTY   
  3        0      0.6       ...       0        probably faulty  
 ...      ...     ...       ...      ... 
result    0.5     0.6                0.001
但是我被卡住了,无法找到如何做第一部分——用“result”行中的值替换所有列中的所有1

谢谢。

基于1)我最初使用乘法而不是替换的想法,以及2)基于@piRSquared的语法以及3)排除第一列进行运算的修改,您可以使用:

df.iloc[:-1, 1:] *= df.iloc[-1, 1:]
试运行:
不是替换,而是倍增?现在我觉得自己很愚蠢,没有想到这样的事情。谢谢。像@SeaBean said
df.iloc[:-1]*=df.iloc[-1]
Good code@piRSquared一样,我已经对它进行了微调,以适应特定的布局要求,跳过第一列进行操作,并包括下面的测试运行数据。:-)
data = {'number': {0: '1', 1: '2', 2: '3', 3: 'result'},
 'error1': {0: 0.0, 1: 1.0, 2: 0.0, 3: 0.5},
 'error2': {0: 0.0, 1: 1.0, 2: 1.0, 3: 0.6},
 'error2040': {0: 1.0, 1: 1.0, 2: 0.0, 3: 0.001}}

df = pd.DataFrame(data)
print(df)

   number  error1  error2  error2040
0       1     0.0     0.0      1.000
1       2     1.0     1.0      1.000
2       3     0.0     1.0      0.000
3  result     0.5     0.6      0.001


df.iloc[:-1, 1:] *= df.iloc[-1, 1:]

print(df)

   number error1 error2 error2040
0       1    0.0    0.0     0.001
1       2    0.5    0.6     0.001
2       3    0.0    0.6       0.0
3  result    0.5    0.6     0.001