Olá Rodrigo, tudo bem ? Espero que sim.
Esse problema apareceu porque o DataFrame tem um espaço no nome das colunas sales, profit e rank, você pode verificar isso acessando o atributo columns .
Código:
empresas_brasileiras.columns
Resultado:
Index(['rank ', 'global company', 'country', 'sales ', 'profit ', 'assets',
'market value'],
dtype='object')
Para resolver isso podemos utilizar o método strip que remove espaços de strings e sobrescrever o nome das colunas. Para isso vamos acessar o columns, depois o str para acessar o nome de cada coluna e por ultimo o método strip(), vamos atribuir esses novos nomes para o mesmo atributo empresas_brasileiras.columns
Código:
empresas_brasileiras.columns = empresas_brasileiras.columns.str.strip()
Agora podemos acessar o atributo e verificar que os espaços sumiram.
Código:
empresas_brasileiras.columns
Resultado:
Index(['rank', 'global company', 'country', 'sales', 'profit', 'assets',
'market value'],
dtype='object')
E agora seu código vai funcionar.
Código:
colunas_para_verificar = ['sales', 'profit', 'assets', 'market value']
# print(empresas_brasileiras.loc[:, colunas_para_verificar])
empresas_brasileiras.loc[:, colunas_para_verificar] = empresas_brasileiras.loc[:, colunas_para_verificar].replace({'$': ''}, regex= True)
empresas_brasileiras
Resultado:
| rank | global company | country | sales | profit | assets | market value |
---|
64 | 65 | Petrobras | Brazil | $83.89 B | $19.77 B | $174.68 B | $83.98 B |
116 | 117 | Vale | Brazil | $54.4 B | $22.47 B | $89.61 B | $82.03 B |
136 | 137 | Itaú Unibanco Holding | Brazil | $35.96 B | $4.96 B | $372.3 B | $52.89 B |
180 | 181 | Banco Bradesco | Brazil | $28.33 B | $4.07 B | $296.89 B | $43.16 B |
266 | 267 | Banco do Brasil | Brazil | $29.54 B | $3.4 B | $362.53 B | $20.7 B |
398 | 399 | JBS | Brazil | $64.99 B | $3.8 B | $37.18 B | $17.48 B |
773 | 774 | Banco Btg Pactual | Brazil | $2.71 B | $848.1 M | $68.31 B | $56.14 B |
952 | 953 | Braskem | Brazil | $19.57 B | $2.59 B | $16.62 B | $6.76 B |
961 | 962 | Gerdau (Cosigua) | Brazil | $14.52 B | $2.87 B | $13.25 B | $10.16 B |
991 | 992 | Suzano Papel e Celulose | Brazil | $7.59 B | $1.6 B | $21.36 B | $14.66 B |
1002 | 1002 | Eletrobrás | Brazil | $6.97 B | $1.05 B | $33.42 B | $13.42 B |
1140 | 1141 | Itaúsa | Brazil | $1.51 B | $2.26 B | $15.44 B | $18.42 B |
1257 | 1257 | Raizen | Brazil | $30.14 B | $619 M | $18.86 B | $1.36 B |
1323 | 1324 | CSN | Brazil | $8.88 B | $2.27 B | $14.25 B | $6.22 B |
1456 | 1456 | XP | Brazil | $2.31 B | $665.9 M | $25.02 B | $14.29 B |
1469 | 1470 | Metalurgica Gerdau | Brazil | $14.52 B | $904.1 M | $13.39 B | $2.6 B |
1494 | 1495 | Marfrig Global Foods | Brazil | $15.82 B | $804.6 M | $8.62 B | $2.62 B |
1538 | 1539 | B3 | Brazil | $1.71 B | $874.2 M | $9.63 B | $18.37 B |
1544 | 1545 | WEG | Brazil | $4.37 B | $664.5 M | $4.3 B | $27.68 B |
1653 | 1652 | Usiminas | Brazil | $6.47 B | $1.75 B | $8.23 B | $3.1 B |
1808 | 1807 | Ultrapar Participacoes | Brazil | $20.34 B | $157.6 M | $6.99 B | $3.26 B |
1852 | 1853 | CPFL Energia | Brazil | $7.27 B | $879.9 M | $11.87 B | $8.47 B |
1942 | 1943 | Bradespar | Brazil | $0 M | $1.5 B | $1.36 B | $2.43 B |
Um ponto é que o replace vai apenas substituir quando ele encontrar apenas o $ sozinho.
Uma sugestão que eu deixo é utilizar o replace do Series.str
empresas_brasileiras['sales'].str.replace('$','',regex=False)
Espero ter ajudado e qualquer duvida não hesite em perguntar.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!