【问题标题】:Pandas Dataframe.to_sql wrongly inserting into more than one table (postgresql)Pandas Dataframe.to_sql 错误地插入多个表(postgresql)
【发布时间】:2018-09-14 00:59:22
【问题描述】:

df.to_sql(name='hourly', con=engine, if_exists='append', index=False)

它不仅将数据插入到表'hourly',还插入到表'margin'——我只执行这个特定的行。 这是 Postgresql 10。 在创建表“每小时”时,我从表“边距”继承了列名和数据类型。

是数据库本身有问题还是 Python 代码有问题?

【问题讨论】:

  • 请使用代码格式化程序格式化您的代码。您的代码看起来没有任何问题。检查您的数据库表创建语句。
  • 您继承此表而不是使用常规CREATE TABLE ... 语句的原因是什么?
  • @RehanAzher 感谢 CREATE 语句的提示 - 做到了。 MaxU - 我使用 PgAdmin4 GUI 并选择了另一个表来继承列。

标签: python-3.x postgresql pandas


【解决方案1】:
df.to_sql(name='hourly', con=engine, if_exists='append', index=False)

将使用 SQL Alchemy 将 df DataFrame 中的行插入到 hourly 表中 - 不多也不少。

其余的将在 PostgreSQL 端完成。

【讨论】:

    【解决方案2】:

    删除

    继承(表名);

    在从表上(在没有 INHERITS 的情况下再次创建它) 似乎成功了。

    只是好奇: 为什么这很重要?我认为继承只会获取列和 dtypes 而不是实际数据。

    【讨论】:

      猜你喜欢
      • 2022-09-30
      • 1970-01-01
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      • 2020-02-09
      • 2020-08-05
      • 2017-05-26
      • 2012-05-07
      相关资源
      最近更新 更多