這是我的資料集:
姓名 | 測驗1 | 測驗3 | 測驗2 | 測驗 |
---|---|---|---|---|
噓 | 0.9 | 0 | 0 | 1.0 |
嗡嗡聲 | 0.8 | 0.7 | 0 | 0 |
布里 | 0 | 0 | 1.0 | 0 |
我如何想要我的結果資料集:
姓名 | 測驗1 | 測驗3 | 測驗2 | 測驗 |
---|---|---|---|---|
噓 | 1個 | 0 | 0 | 1個 |
嗡嗡聲 | 1個 | 1個 | 0 | 0 |
布里 | 0 | 0 | 1個 | 0 |
我嘗試將 df.astype 更改為 int64 - 但這將所有低于 1 的值更改為 0。我也嘗試過:
df1 = df.apply(pd.to_numeric, errors='coerce')
但這導致我的第一列變成了 NaN 值。我也試過:
df.where(df <= 0.4, 1, inplace=True)
但我得到一個錯誤,說這在 str 和 float 之間是不可能的。我在名稱列中設定了 set_index(),因此理想情況下不應出現此錯誤。我似乎無法弄清楚,需要主要幫助:((
uj5u.com熱心網友回復:
df.set_index('Name').astype('float').gt(0.4).astype('int').reset_index()
輸出
Name Test1 Test3 Test2 Quiz
0 Boo 1 0 0 1
1 Buzz 1 1 0 0
2 Bree 0 0 1 0
uj5u.com熱心網友回復:
這取決于閾值 - 如果需要1
,如果值更大,例如0.4
比較布爾掩碼并轉換為整數以True, False
進行1,0
映射:
#if necessary
#df = df.set_index('Name')
df1 = df.apply(pd.to_numeric, errors='coerce').gt(0.4).astype(int)
print (df1)
Test1 Test3 Test2 Quiz
Name
Boo 1 0 0 1
Buzz 1 1 0 0
Bree 0 0 1 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/533409.html
上一篇:使用熊貓添加具有重復鍵的列