![](/img/trans.png)
[英]Replacing column values in a pandas dataframe based if it contains a specific substring
[英]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.