我有一个 pandas 数据框,我想将其插入到 Django 项目中的 Postgres 数据库中。
数据框有5列,数据库表有6列,而且数据框列和数据库列顺序不同。
那么,在合并两者之前,我是否必须确保数据框和数据库表中的列顺序相同?请建议我如何处理缺失的列
If 数据框的列名与数据库中的列名相同, 你可以将 df 直接插入数据库表使用dataframe.to_sql() https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_sql.html方法的帮助下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)
缺少的列将为空(或者如果在数据库级别而不是 django 级别定义,数据库将设置默认值),或者您可以将缺少的列添加到具有所需值的数据框中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)