我有一個資料集,每當我看到包含特定單詞的某個單詞時,我都想將特定值匹配到新列中。
資料
id status
see-dd-2333 y
see-dd-aaaaa y
sal-led-sss y
sal-led-sss n
dis-dd-red n
想要的
id status pw
see-dd-2333 y 14
see-dd-aaaaa y 14
sal-led-sss y 8
sal-led-sss n 8
dis-dd-red n 5
正在做
我想我可以使用字典。每當我看到'see-dd'的模式時,我想提供14的數值。當我看到包含'sal-led'的單詞時,我希望提供8的數值。每當我看到“dis-dd”時,我都想將其與 5 的值相匹配。
out= {
'see-dd': 14,
'sal-led': 8,
}
任何建議表示贊賞。
uj5u.com熱心網友回復:
最簡單的replace方法是使用該方法。正如檔案所指出的:
這種方法有很多選擇。我們鼓勵您嘗試和使用此方法,以直觀了解其作業原理。
df['id'].replace(regex=out)
0 14
1 14
2 8
3 8
4 5
Name: id, dtype: int64
與out:
out= {
'see-dd': 14,
'sal-led': 8,
'dis-dd': 5
}
df['pw'] = df['id'].replace(regex=out)
df
id status pw
0 see-dd-2333 y 14
1 see-dd-aaaaa y 14
2 sal-led-sss y 8
3 sal-led-sss n 8
4 dis-dd-red n 5
uj5u.com熱心網友回復:
您還可以使用:
df['pw'] = df['id'].str.rsplit('-', 1).str.get(0).map(out)
輸出:
id status pw
0 see-dd-2333 y 14
1 see-dd-aaaaa y 14
2 sal-led-sss y 8
3 sal-led-sss n 8
4 dis-dd-red n 5
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/310957.html
