2017-02-08 60 views
2

我遇到這樣一個問題

import pandas as pd 
df = pd.DataFrame({ 
    'name': ['Alice','John','Peter','Richard'], 
'salary': ['90000', '1000$', '80000', '900$'] 

})

一些細胞是在國家貨幣&一些美元。我想創建一個新的變量來劃分的本國貨幣&一些以美元爲下方

df['$'] = 1 
df.ix[df['salary'].str.contains("$") == True, '$' ] =70 

雖然我得到

df['$'] 
0 70 
1 70 
2 70 
3 70 
Name: $, dtype: int64 

我想這個問題是在這種情況下,$元字符,我需要將其轉換爲字符串。如何解決它?

回答

1

你需要numpy.where$是在正則表達式的特殊字符,所以需要通過\逃脫

df['$'] = np.where(df['salary'].str.contains("\$"), 70, 1) 
print (df) 
     name salary $ 
0 Alice 90000 1 
1  John 1000$ 70 
2 Peter 80000 1 
3 Richard 900$ 70 
+0

我已經做了「DF [ '$'] = np.where(DF [ '工資'。 str.contains(「\ $」),70,1)「&get just 70 then df.ix [df ['salary']。str.contains(」\ $「)== True,'$'] = 70 & 沒關係! – Edward

+0

是的,但解決方案的作品。感謝您的接受! – jezrael

+0

它的工作原理,問題解決了! – Edward

相關問題