簡體   English   中英

根據 dataframe 列中的特定值替換所有值

[英]Replacing all values based on specific value in column dataframe

我有一個這樣的數據框,包含 2041 列。

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

結果行是特定錯誤將導致最終錯誤的概率,並且使用pieces計算可能不是很好,但它可以工作。

現在我想根據“結果”中的概率將所有數字分為四類(有故障、可能有故障、沒有故障、信息不足)

所以我想最簡單的方法是用“結果”中的特定值替換所有值,然后根據行中的數字添加名為“預測”的新列,這樣它看起來像

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

但是我被卡住了,無法找到如何做第一部分 - 用“結果”行中的值替換所有列中的所有 1。

謝謝你。

基於 1)我使用乘法而不是替換的最初想法和 2)利用 @piRSquared 的語法以及 3)修改以排除第一列進行操作,您可以使用:

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

測試運行:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM