2017-02-08 32 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

相关问题