Eu tenho esse dataframe:
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']
})
Estou tentando substituir os sinais de moeda por espaços em branco, mas o procedimento abaixo não funciona.
patternv='|'.join(['$', '£'])
dfsupport['Amount'] = dfsupport['Amount'].str.replace(patternv,'')
Por que isso não funciona?
Imprima o dataframe após o acima:
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
Eu segui esta pergunta , então não sei por que a minha não está funcionando.
Você está perdendo duas coisas importantes:
re.escape
($
significa "fim de string")regex=True
modo destr.replace
(agoraFalse
por padrão)Saída:
Primeiro escape dos caracteres regex na compreensão do gerador e depois especifique
regex=True
paraSeries.str.replace
substituir substrings:Outra solução possível, usando
pandas.Series.str.extract
:Saída: