将Pandas Dataframe写入现有的SQL表SQLAlchemy

时间:2018-08-22 19:58:03

标签: postgresql pandas dataframe sqlalchemy pandas-to-sql

我正在尝试使用SQLAlchemy将Pandas数据框写入Postgres数据库

这是一个三部分的问题:

前提: 我已经这样创建了一个表:

class company(Base):
    __tablename__ = "company_score"

    id = Column(Integer, Sequence('company_id_seq'), primary_key=True)
    company_user_id = Column(BigInteger, unique=True, nullable=False)
    user_id = Column(BigInteger, ForeignKey('user.id'), unique=True, nullable=False)
    score = Column(Numeric, nullable=False)

在检查数据库时,我确认该表已创建。

我有一个数据框df,我想插入到此表中。 在 df 内部,我具有以下字段的数据:- company_user_id,user_id,得分

我想将此数据附加到表中,非常简单。

  1. 请记住,自动增量索引应作为主键
  2. user_id列应满足外键约束
  3. 数据应保持一致

我在做什么:

df.to_sql("company_score", sql_engine, if_exists='append', index=False)

问题:

  1. 自动增量索引需要输入,我需要生成该输入
  2. 在写操作期间未检查外键约束,正在输入错误的输入
  3. 主键丢失和表的结构被修改

我想要一个这样的最终结构:

id || company_user_id || user_id || score    
1  ||             919 ||      22 ||  1000    
2  ||              57 ||      23 ||   700         

迫切需要帮助!

0 个答案:

没有答案