我有这个数据框:
dfsupport = pd.DataFrame({'Date': ['8/12/2020','8/12/2020','13/1/2020','24/5/2020','31/10/2020','11/7/2020','11/7/2020'],
'Category': ['Table','Chair','Cushion','Table','Chair','Mats','Mats'],
'Sales': ['1 table','3chairs','8 cushions','3Tables','12 Chairs','12Mats','4Mats'],
'Paid': ['Yes','Yes','Yes','Yes','No','Yes','Yes',],
'Amount': ['93.78','$51.99','44.99','38.24','£29.99','29 only','18']
})
我试图用空白替换货币符号,但下面的方法不起作用。
patternv='|'.join(['$', '£'])
dfsupport['Amount'] = dfsupport['Amount'].str.replace(patternv,'')
为什么这不起作用?
在上述之后打印数据框:
Date Category Sales Paid Amount
0 8/12/2020 Table 1 table Yes 93.78
1 8/12/2020 Chair 3chairs Yes $51.99
2 13/1/2020 Cushion 8 cushions Yes 44.99
3 24/5/2020 Table 3Tables Yes 38.24
4 31/10/2020 Chair 12 Chairs No £29.99
5 11/7/2020 Mats 12Mats Yes 29 only
6 11/7/2020 Mats 4Mats Yes 18
Date Category Sales Paid Amount
1 8/12/2020 Chair 3chairs Yes $51.99
4 31/10/2020 Chair 12 Chairs No £29.99
我确实遵循了这个问题,所以不确定为什么我的不起作用。
你错过了两件重要的事情:
re.escape
($
表示“字符串结尾”) 转义正则表达式字符regex=True
模式str.replace
(现在False
默认)输出:
首先在生成器理解中转义正则表达式字符,然后指定
regex=True
forSeries.str.replace
替换子字符串:另一种可能的解决方案,使用
pandas.Series.str.extract
:输出: