2017-01-05 215 views
1

我在熊貓數據框中有一列,我想將所有不是'US'的值替換爲'其他'。我嘗試了下面的代碼。無法根據熊貓列中的條件替換字符串

dat.country.str.replace(to_replace='^(?!.*US)', value='Other', regex=True) 

但是,而不是得到'其他',我得到'其他'的連接結果和舊值。例如,如果舊值爲'中國',以上代碼給我的結果'OtherChina'

任何人都可以幫忙嗎?

+2

正則表達式將''to_replace ='^(?! US $)。* $''並且不要忘記將新值賦給列。 –

+1

@WiktorStribiżew,請將其作爲回答發佈。它爲我工作。非常感謝!! – Enthusiast

回答

1

當使用向前看符號與置換相結合,請記住,向前看符號本身是zero-width assertions - 他們實際上並不比賽(消費)的任何字符 - 因此,具有.+將它們結合起來(.*如果要替換空值) :

^(?!US$).+ //disallow whole string match 
^(?!.*US).+ //disallow partial matches