¿Agregar a un DataFrame vacío en Pandas?

Resuelto ericmjl asked hace 11 años • 6 respuestas

¿Es posible agregar a un marco de datos vacío que no contiene índices ni columnas?

Intenté hacer esto, pero sigo recibiendo un marco de datos vacío al final.

p.ej

import pandas as pd

df = pd.DataFrame()
data = ['some kind of data here' --> I have checked the type already, and it is a dataframe]
df.append(data)

El resultado se ve así:

Empty DataFrame
Columns: []
Index: []
ericmjl avatar May 17 '13 03:05 ericmjl
Aceptado

Esto debería funcionar:

>>> df = pd.DataFrame()
>>> data = pd.DataFrame({"A": range(3)})
>>> df = df.append(data) 
>>> df

   A
0  0
1  1
2  2

Dado que esto appendno sucede in situ , tendrás que almacenar el resultado si lo deseas:

>>> df = pd.DataFrame()
>>> data = pd.DataFrame({"A": range(3)})
>>> df.append(data)  # without storing
>>> df
Empty DataFrame
Columns: []
Index: []
>>> df = df.append(data)
>>> df
   A
0  0
1  1
2  2
DSM avatar May 16 '2013 20:05 DSM

Y si quieres agregar una fila, puedes usar un diccionario:

df = pd.DataFrame()
df = df.append({'name': 'Zed', 'age': 9, 'height': 2}, ignore_index=True)

que te da:

   age  height name
0    9       2  Zed
newmathwhodis avatar Aug 05 '2015 17:08 newmathwhodis

Puede concatenar los datos de esta manera:

InfoDF = pd.DataFrame()
tempDF = pd.DataFrame(rows,columns=['id','min_date'])

InfoDF = pd.concat([InfoDF,tempDF])
Deepish avatar Aug 12 '2016 12:08 Deepish

Las respuestas son muy útiles, pero como pandas.DataFrame.appendquedaron obsoletas (como ya lo mencionaron varios usuarios) y las respuestas que utilizan pandas.concatno son "Fragmentos de código ejecutables", me gustaría agregar el siguiente fragmento:

import pandas as pd

df = pd.DataFrame(columns =['name','age'])
row_to_append = pd.DataFrame([{'name':"Alice", 'age':"25"},{'name':"Bob", 'age':"32"}])
df = pd.concat([df,row_to_append])

Así dfes ahora:

    name age
0  Alice  25
1    Bob  32
Kloster Matias avatar Sep 07 '2022 20:09 Kloster Matias