Mah*_*esh 2 python django postgresql dataframe pandas
我有一个 Pandas 数据框,我想将它插入到我的 Django 项目中的 Postgres 数据库中。
数据框有 5 列,数据库表有 6 列,而且,数据框列和 DB 列的顺序不一样。
那么,在合并两者之前,我是否必须确保数据框和数据库表中的列顺序相同?以及如何建议我如何处理丢失的列
如果数据框的列名与数据库中的列名相同,则可以借助for connection使用方法将 df 直接插入到数据库表中:dataframe.to_sql()sqlalchemy
from myapp.models import Bob
from sqlalchemy import create_engine
from django.conf import settings
db_connection_url = "postgresql://{}:{}@{}:{}/{}".format(
settings.DATABASES['default']['USER'],
settings.DATABASES['default']['PASSWORD'],
settings.DATABASES['default']['HOST'],
settings.DATABASES['default']['PORT'],
settings.DATABASES['default']['NAME'],
)
engine = create_engine(db_connection_url)
df.to_sql(Bob._meta.db_table, engine, if_exists='append', index=False, chunksize=10000)
Run Code Online (Sandbox Code Playgroud)
缺失的列将为空(或者如果在数据库级别而不是 django 级别定义,则数据库将设置默认值),或者您可以将缺失的列添加到具有所需值的数据框中。
| 归档时间: |
|
| 查看次数: |
6785 次 |
| 最近记录: |