为了账号安全,请及时绑定邮箱和手机立即绑定

如何将DataFrame写入postgres表?

如何将DataFrame写入postgres表?

莫回无 2019-12-12 14:25:26
有DataFrame.to_sql方法,但仅适用于mysql,sqlite和oracle数据库。我无法传递给此方法postgres连接或sqlalchemy引擎。
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

这就是我做的。


可能更快,因为它正在使用execute_batch:


# df is the dataframe

if len(df) > 0:

    df_columns = list(df)

    # create (col1,col2,...)

    columns = ",".join(df_columns)


    # create VALUES('%s', '%s",...) one '%s' per column

    values = "VALUES({})".format(",".join(["%s" for _ in df_columns])) 


    #create INSERT INTO table (columns) VALUES('%s',...)

    insert_stmt = "INSERT INTO {} ({}) {}".format(table,columns,values)


    cur = conn.cursor()

    psycopg2.extras.execute_batch(cur, insert_stmt, df.values)

    conn.commit()

    cur.close()


查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 1319 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信