【问题标题】:Function to write dataframe to SQL将数据帧写入 SQL 的函数
【发布时间】:2021-04-06 18:57:31
【问题描述】:

我有这个函数,它接收一个数据帧并将其作为一个表写入 SQL。

def insert(df):
    with connection.cursor as cur:
          cur.execute('''create tablaexyz.xyz
                         (ID integer,
                         first_name varchar(100),
                         last_name  varchar(100))''')
         df.values.to_list()
         cur.execute('''insert into xyz.xyz(?,?,?)''', df)

我想让这个函数动态到我传入数据帧的位置,它会根据数据帧中的列数自动创建表。对于数据类型,最好有基于 pandas 列类型创建等效 SQL 列类型的东西。

任何帮助将不胜感激。另外,我知道 pandas.to_sql。这对我的目的不起作用。想要用我已经拥有的代码有机地创建一些东西。

【问题讨论】:

    标签: python sql pandas


    【解决方案1】:

    你为什么不使用pandas.DataFrame.to_sql()

    https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html

    根据文档,它甚至应该能够创建表格。

    【讨论】:

    • 不使用sql alchemy,所以没有引擎。寻找一种有机的方式来编码我已经拥有的东西。
    【解决方案2】:

    如果不参考特定的 RDBMS,可能很难“猜测”所有极端情况的正确数据类型。另一方面,例如DuckDB 提供了将 pandas 数据帧集成为可查询视图的功能(参见 efficient transfer 部分)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-02
      • 2016-02-22
      • 2020-07-12
      • 2021-12-11
      • 2020-10-06
      • 2018-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多