TransWikia.com

como modifico los datos en un dataframe, creado a partir de una web?

Stack Overflow en español Asked by Andrés Domínguez on August 26, 2021

No logro modificar un dataframe que creé basado en datos de una web, baje los datos con la llibrería BeautifulSoup y luego creé el dataframe con Pandas, y ahora no logro modificarlo como lo necesito.

El código que uso para conseguir el contenido de la URL

# specify url
url = 'https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M'

# import the BeautifulSoup library so we can parse HTML and XML documents
page = urllib.request.urlopen(url)

# parse the HTML from our URL into the BeautifulSoup parse tree format
soup = BeautifulSoup(page, "lxml")

print(soup.prettify())

Imagen del resultado de Wikipedia:

Código con el que intento generar el DataFrame

# tables 
wikitable = soup.find('table', class_='wikitable sortable')
wikitable
# loop at wikiweb

A = []
B = []
C = []

for row in wikitable.findAll('tr'):
    cells = row.findAll('td')
    if len(cells) == 3:
        A.append(cells[0].find(text=True))
        B.append(cells[1].find(text=True))
        C.append(cells[2].find(text=True))

# Making a dataframe
df = pd.DataFrame(A,columns=['Postal Code'])
df['Borough']=B
df['Neighborhood']=C
df

El resultado que obtengo como DataFrame generado:

Y hasta aquí todo iba bien, pero no logro modificarlo! Este es el código que no logro hacer que funcione:

el siguiente código es para ignorar del dataframe los rows que tengan ‘Not assigned’:

df = df[df.Borough != 'Not assigned'].reset_index(drop=True)

el siguiente código es para combinar las filas que compartan el mismo codigo postal, en una fila con los barrios separados con una coma:

dfgroup = df.groupby(['Postal Code','Borough'], as_index=False).agg(lambda x: ','.join(x))

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP