$ as美元不是正则表达式中的元字符

时间:2017-02-08 15:02:52

标签: regex python-3.x pandas

我遇到了这样的问题

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

我想在这种情况下问题是$ meta字符,我需要将其转换为字符串。怎么解决?

1 个答案:

答案 0 :(得分: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