Para el que tenga problemas con la función append() es porque fue eliminada de Pandas en las nuevas versiones. En vez de eso, para añadir una nueva fila puedes usar loc(): import pandas as pd df = pd.read_excel("estudiantes.xlsx") df.to_csv("NuevoNombre.csv", index=None, header=True) df.loc[8] = ["Carlos", 27, "M", "Sociología", "Segundo"] Si no existe el ID 8, esto creará un nuevo registro con este ID. Si existe el ID 8, lo sobrescribirá. Por último, loc() solo permite añadir una fila si escribes datos para todas las columnas de la tabla (si quitas "Segundo" en el ejemplo de arriba, dará error).
Yo lo resolvi con Concat. crea un nuevo dataframe y lo agrega al final df = pd.read_excel("estudiantes.xlsx") df.to_csv("NuevoNombre.csv", index=None, header=True) nuevaLinea = ["Carlos", 27, "M", "Sociología", "Segundo"] df = pd.concat( [ df , pd.DataFrame([nuevaLinea],columns=df.columns)], ignore_index=True) el problema con concat es que si no especificas el 'columns' te agrega al final del data frame nColumnas segun datos ingreasados y no coinciden con los originales
Hola, yo tambien tuve problemas con la funcion .append() ya que fue eliminada de pandas en las nuevas versiones. y utilice la funcion .concat() para agregar una nueva fila: import pandas as pd # Generar una lista con los datos que se quieren agregar data = [['Carlos', 27, 'M', 'Sociología', 'Segundo']] # Crear un nuevo DataFrame a partir de la lista data # Especificar las columnas en el nuevo DataFrame usando el argumento columns nueva_fila = pd.DataFrame(data, columns=['NOMBRE', 'EDAD', 'GENERO', 'CARRERA', 'TURNO']) # El argumento ignore_index=True se utiliza para que los índices se vuelvan a numerar de forma continua después de la concatenación df = pd.concat([df, nueva_fila], ignore_index=True)
AQUI TIENES EL CODIGO, NO PIERDAS MINUTOS DE TU VIDA ------------------------------------ import pandas as pd #ESTUDIANTES.CSV es un archivo con 8 filas y 3 columnas que contiene Nombre, Edad y Carrera. df = pd.read_csv('estudiantes.csv') df.iloc[1,3] # elemento unico posicion df.iloc[2,:3] #toda la fila 2--- :3 == todas hasta 3 columna df.loc[1, 'SEMESTRE'] # elemento unico posicion con nombre de columna df.loc[:3, ('NOMBRE','CARRERA')] df['TURNO'] = pd.Series(['tarde','noche','tarde','noche','tarde','noche','tarde','noche']) #Agrega una columna df NAN = celda vacia SEMESTRE = df.pop('SEMESTRE') #Eliminar la columna df = df.append(pd.Series(['Carlos', 27, 'M', 'Sociologia', 'tarde'], index = ['NOMBRE', 'EDAD', 'CARRERA', TURNO]), ignore_index = True) #Agregar una Fila al final df.drop([1,2]) elimina la fila 1 y la fila 2 df[(df['GENERO'] == 'F')] & df[(df['EDAD'] >= 22)] df.sort_values('CARRERA') #Orndena de manera alfab ascendente df.sort_values('EDAD') #Orndena de manera numerica ascendente df.dropna() elimina las filas donde hay celdas vacias tipo "NAN"
Para el que tenga problemas con la función append() es porque fue eliminada de Pandas en las nuevas versiones. En vez de eso, para añadir una nueva fila puedes usar loc():
import pandas as pd
df = pd.read_excel("estudiantes.xlsx")
df.to_csv("NuevoNombre.csv", index=None, header=True)
df.loc[8] = ["Carlos", 27, "M", "Sociología", "Segundo"]
Si no existe el ID 8, esto creará un nuevo registro con este ID. Si existe el ID 8, lo sobrescribirá. Por último, loc() solo permite añadir una fila si escribes datos para todas las columnas de la tabla (si quitas "Segundo" en el ejemplo de arriba, dará error).
muchas gracias por tu aporte
que grande eres
Yo lo resolvi con Concat. crea un nuevo dataframe y lo agrega al final
df = pd.read_excel("estudiantes.xlsx")
df.to_csv("NuevoNombre.csv", index=None, header=True)
nuevaLinea = ["Carlos", 27, "M", "Sociología", "Segundo"]
df = pd.concat( [ df , pd.DataFrame([nuevaLinea],columns=df.columns)], ignore_index=True)
el problema con concat es que si no especificas el 'columns' te agrega al final del data frame nColumnas segun datos ingreasados y no coinciden con los originales
se puede usar append, pero como _append
df_extended = pd.DataFrame([['Joslyn', 'F', 22, 'Fisica', 'Matutino']],
columns=['NOMBRE', 'GENERO', 'EDAD', 'CARRERA', 'TURNO'])
df = pd.concat([df, df_extended], ignore_index = True)
Con este código me funcionó todo perfecto.
Hola, yo tambien tuve problemas con la funcion .append() ya que fue eliminada de pandas en las nuevas versiones.
y utilice la funcion .concat() para agregar una nueva fila:
import pandas as pd
# Generar una lista con los datos que se quieren agregar
data = [['Carlos', 27, 'M', 'Sociología', 'Segundo']]
# Crear un nuevo DataFrame a partir de la lista data
# Especificar las columnas en el nuevo DataFrame usando el argumento columns
nueva_fila = pd.DataFrame(data, columns=['NOMBRE', 'EDAD', 'GENERO', 'CARRERA', 'TURNO'])
# El argumento ignore_index=True se utiliza para que los índices se vuelvan a numerar de forma continua después de la concatenación
df = pd.concat([df, nueva_fila], ignore_index=True)
Muchas gracias!!!!
Hola, tu codigo me incribio 3 registros jejeje, trato de ver alguna observacion en el codigo pero al parecer todo esta bien, saludos
¡Muy interesante el tutorial!
Imprescindible Pandas para aprender Ciencia de Datos.
Carlos.-
Gracias ❤
Hola; me sale un FutureWarning por la función append, hice el ejercicio con la cuncat y me agrego la fila. ¿se puede realizar asi o de otra manera?
Si appened ya no esta disponible en algunas versiones de panda
Buenas, como se instala el Qt designer, de manera offline?
EDAD me tira error
usar append al parecer ya no funciona en pandas
Ya no funciona hay que usar concat
Append ya no funciona, pueden añadir nuevos elementos con concat
df_extended = pd.DataFrame([['Ana', 30, 'F', 'Fisica', 'tarde']], columns=['NOMBRE', 'EDAD', 'GENERO', 'CARRERA', 'TURNO'] )
df = pd.concat([df, df_extended])
print(df)
AQUI TIENES EL CODIGO, NO PIERDAS MINUTOS DE TU VIDA
------------------------------------
import pandas as pd
#ESTUDIANTES.CSV es un archivo con 8 filas y 3 columnas que contiene Nombre, Edad y Carrera.
df = pd.read_csv('estudiantes.csv')
df.iloc[1,3] # elemento unico posicion
df.iloc[2,:3] #toda la fila 2--- :3 == todas hasta 3 columna
df.loc[1, 'SEMESTRE'] # elemento unico posicion con nombre de columna
df.loc[:3, ('NOMBRE','CARRERA')]
df['TURNO'] = pd.Series(['tarde','noche','tarde','noche','tarde','noche','tarde','noche']) #Agrega una columna
df
NAN = celda vacia
SEMESTRE = df.pop('SEMESTRE') #Eliminar la columna
df = df.append(pd.Series(['Carlos', 27, 'M', 'Sociologia', 'tarde'],
index = ['NOMBRE', 'EDAD', 'CARRERA', TURNO]), ignore_index = True) #Agregar una Fila al final
df.drop([1,2]) elimina la fila 1 y la fila 2
df[(df['GENERO'] == 'F')] & df[(df['EDAD'] >= 22)]
df.sort_values('CARRERA') #Orndena de manera alfab ascendente
df.sort_values('EDAD') #Orndena de manera numerica ascendente
df.dropna() elimina las filas donde hay celdas vacias tipo "NAN"