Guardar un Pandas DataFrame en un modelo de Django

Tengo datos de precios de acciones que están almacenados en un DataFrame de pandas como se muestra a continuación (en realidad estaba en un panel, pero lo convertí en un DataFrame)

date ticker close tsr 0 2013-03-28 abc 22.81 1.000439 1 2013-03-28 def 94.21 1.006947 2 2013-03-28 ghi 95.84 1.014180 3 2013-03-28 jkl 31.80 1.000000 4 2013-03-28 mno 32.10 1.003125 ...many more rows 

Quiero guardar esto en un modelo de Django, que se parece a esto (coincide con los nombres de columna):

 class HistoricalPrices(models.Model): ticker = models.CharField(max_length=10) date = models.DateField() tsr = models.DecimalField() close = models.DecimalField() 

Lo mejor que he encontrado hasta ahora es usarlo para guardarlo, donde df es mi DataFrame:

 entries = [] for e in df.T.to_dict().values(): entries.append(HistoricalPrices(**e)) HistoricalPrices.objects.bulk_create(entries) 

¿Hay una mejor manera de guardar esto?

He mirado django-pandas , pero parece que solo se lee en la base de datos.

Sería más eficiente usar to_sql() con los parámetros de connection apropiados para el engine , y ejecutar esto dentro de su aplicación Django lugar de iterar a través del DataFrame y guardar una instancia del model a la vez:

 from django.conf import settings user = settings.DATABASES['default']['USER'] password = settings.DATABASES['default']['PASSWORD'] database_name = settings.DATABASES['default']['NAME'] database_url = 'postgresql://{user}:{password}@localhost:5432/{database_name}'.format( user=user, password=password, database_name=database_name, ) engine = create_engine(database_url, echo=False) df.to_sql(HistoricalPrices, con=engine)