Uso mucho el siguiente método para agregar una sola fila a un marco de datos. Una cosa que realmente me gusta es que te permite agregar un objeto de dictado simple. Por ejemplo:
# Creating an empty dataframe df = pd.DataFrame(columns=['a', 'b']) # Appending a row df = df.append({ 'a': 1, 'b': 2 }, ignore_index=True)
Nuevamente, lo que más me gusta de esto es que el código es muy limpio y requiere muy pocas líneas. Ahora supongo que la alternativa recomendada es:
# Create the new row as its own dataframe df_new_row = pd.DataFrame({ 'a': [1], 'b': [2] }) df = pd.concat([df, df_new_row])
Entonces, lo que antes era una línea de código ahora son dos líneas con una variable descartable y un cruft adicional donde creo el nuevo marco de datos. :( ¿Hay una buena manera de hacer esto que solo use un dict como el que tengo en el pasado (que no está en desuso)?
Cree una lista con sus diccionarios, si son necesarios, y luego cree un nuevo marco de datos con df = pd.DataFrame.from_records(your_list)
. El método "agregar" de List es muy eficiente y nunca quedará obsoleto. Los marcos de datos, por otro lado, con frecuencia tienen que ser recreados y todos los datos copiados en anexos, debido a su diseño, es por eso que desaprobaron el método.
También me gusta el método append. Pero puedes hacerlo en una línea con una lista de dictados
df = pd.concat([df, pd.DataFrame.from_records([{ 'a': 1, 'b': 2 }])])
o usando loc y tuplas para valores en DataFrames con índices ascendentes incrementales
df.loc[len(df), ['a','b']] = 1, 2
o tal vez
df.loc[len(df), df.columns] = 3, 4