Exluir text using python on pandas

Asked

Viewed 33 times

0

I am manipulating a dataframe where a field has contents as for example:

123.456[7].

I need to get the start character sequence of this field without the substring [7], and then remove the . and convert int.

df = dataframe field = Public Paying

Commands:

df['Público Pagante'] = df['Público Pagante'].str.slice(start=0,stop=df['Público Pagante'].str.index("[7]"))

df['Público Pagante'] = df['Público Pagante'].str.replace('.','').astype(int)

It’s a mistake because Command 1 is retreating Nan.

Complete code of extraction:

# importando as bibliotecas
import pandas as pd
import requests

# URL de origem dos dados
url = 'https://pt.wikipedia.org/wiki/Lista_de_finais_da_Copa_do_Mundo_FIFA'

# resuisitar a pagina e guardar a resposta
resposta = requests.get(url)

# obter a resposta em formato html
table = pd.read_html(resposta.text)

# O dataframe será apenas a tabela 1
df = table[0]

# colocar os nomes das colunas com o resultado da primenra linha
df.columns = df.iloc[0]

# Apagar uma linha
df.drop(df.index[0], inplace=True)

# tratando o campo 'Público Pagante' e convertendo para int.
df['Público Pagante'] = df['Público Pagante'].str.slice(start=0,stop=df['Público Pagante'].str.index("[7]"))
df['Público Pagante'] = df['Público Pagante'].str.replace('.','').astype(int)

# mostrando os 5 primeiro registros do dataframe
df.head()

1 answer

0

Hello

I have been solving the same exercise and the command below worked:

df["Público Pagante"] = df["Público Pagante"].str.replace('.', '').str.replace("[", '').str.replace("7", '').str.replace("]", '').astype(int)

It didn’t look elegant, but it solved the problem :)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.