對于下面給出的 DataFrame:
ID Match
0 0
1 1
2 2
3 0
4 0
5 1
使用 Python,我想將作為引數接收的特定值的所有數字轉換為 1,將所有其他數字轉換為零(并保持正確的索引)。
如果引數為 2,df則應如下所示:
ID Match
0 0
1 0
2 1
3 0
4 0
5 0
如果引數為 0:
ID Match
0 1
1 0
2 0
3 1
4 1
5 0
我嘗試了 NumPywhere()和select()方法,但結果令人尷尬地長。
uj5u.com熱心網友回復:
你可以使用eq astype(int):
df['Match'] = df['Match'].eq(num).astype(int)
對于num=2:
ID Match
0 0 0
1 1 0
2 2 1
3 3 0
4 4 0
5 5 0
對于num=0:
ID Match
0 0 1
1 1 0
2 2 0
3 3 1
4 4 1
5 5 0
uj5u.com熱心網友回復:
您可能忘記將用戶輸入更改為 int,因為它作為浮點數回傳
data = {
'ID' : [0, 1, 2, 3, 4, 5],
'Match' : [0, 1, 2, 0, 0, 1]
}
df = pd.DataFrame(data)
user_input = int(input('Enter Number to Match:'))
np.where(df['Match'] == user_input, 1, 0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/444442.html
上一篇:pandasdataframe-groupbydataframebydatetime(過去12個月)并同意兩列,答案是這樣↓
