TransWikia.com

Tuplas a DataFrame (pandas)

Stack Overflow en español Asked by Fioreitor on December 9, 2020

Muy buenas compañeros, tengo esta duda que me tiene días investigando una solución….
Miren:

import pandas as pd
Capital=['Tokio','Madrid','Lima']#Listas random
Habitantes=[35,45,10]
Continente=['Sur America','Europa','Asia']
ejemplo={'Paises':Capital,
      'Habitantes':Habitantes,
      'Continente':Continente}
serie= pd.DataFrame(ejemplo)#proceso a dataFrame
print(serie)
#Ingrese por teclado nuevos valores
pais1=input("Ingrese un pais: ")
habi1=input("Ingrese habitantes: ")
conti1=input("Ingrese un continente: ")
Capital.append(pais1)
Habitantes.append(habi1)
Continente.append(conti1)
print(serie)

por algún motivo no agrega lo que ingrese en la última parte…. me presenta esto:
out>>

Disculpen si se ve muy "novato" mi código, estoy empezando y bueno espero encontrar una solución… Gracias!

3 Answers

El error es que debes crear un nuevo registro de la forma que creaste la estructura de datos inicial con el que inicializas el DataFrame, te dejo un ejemplo:

# import pandas as pd
Capital=['Tokio','Madrid','Lima']#Listas random
Habitantes=[35,45,10]
Continente=['Sur America','Europa','Asia']
ejemplo={'Paises':Capital,
         'Habitantes':Habitantes,
         'Continente':Continente}

df = pd.DataFrame(ejemplo)

pais1=input("Ingrese un pais: ")
habi1=input("Ingrese habitantes: ")
conti1=input("Ingrese un continente: ")

nueva_row = {'Paises':pais1, 'Habitantes':habi1, 'Continente':conti1}

df = df.append(nueva_row, ignore_index=True)

print(df)

Correct answer by marmurar on December 9, 2020

import pandas as pd
Capital=['Tokio','Madrid','Lima']#Listas random
Habitantes=[35,45,10]
Continente=['Sur America','Europa','Asia']


#Ingrese por teclado nuevos valores
pais1=input("Ingrese un pais: ")
habi1=input("Ingrese habitantes: ")
conti1=input("Ingrese un continente: ")
Capital.append(pais1)
Habitantes.append(habi1)
Continente.append(conti1)
ejemplo={'Paises':Capital,
      'Habitantes':Habitantes,
      'Continente':Continente}
serie= pd.DataFrame(ejemplo)
[![introducir la descripción de la imagen aquí][1]][1]print(serie)

###Lo que pasaba es que el data frame no contenía los valores nuevos que escribes ##en el input. Lo que tienes que hacer es crear el data frame después de agregar ##los valores nuevos.

##What happened is that the data frame did not contain the new values that you ##write in the input. What you have to do is create the data frame after adding ##the new values.

Answered by Santiago Barba on December 9, 2020

Lo que pasa es que cuando haces esos nuevos .append() a tus arreglos, estas actualizando esos arreglos, mas no tu DataFrame que asignaste a la variable ejemplo. Esa variable se quedó con lo último que le asignaste, que eran tus arreglos sin esos nuevos valores.

Lo que necesitas es actualizar tus datos en la variable ejemplo. Por ejemplo, puedes hacer es reasignar tu variable con un nuevo objeto DataFrame en cada actualización, así:

pais1 = input("Ingrese un pais: ")
habi1 = input("Ingrese habitantes: ")
conti1 = input("Ingrese un continente: ")
Capital.append(pais1)
Habitantes.append(habi1)
Continente.append(conti1)
ejemplo = {
  'Paises': Capital,
  'Habitantes': Habitantes,
  'Continente': Continente
}
df = pd.DataFrame(ejemplo) # Aquí ya tendrás los datos actualizados

Answered by Carlos Córdova on December 9, 2020

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