pandas 数据帧到PostgreSQL表中使用的是没有SQLAlChemy的心理复制2吗?

本教程将介绍 pandas 数据帧到PostgreSQL表中使用的是没有SQLAlChemy的心理复制2吗?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

pandas 数据帧到PostgreSQL表中使用的是没有SQLAlChemy的心理复制2吗? 教程 第1张

问题描述

我要将Pandas数据帧写入PostgreSQL表,而不使用SQLAlChemy。

表名应与PANDAS变量名对应,如果已存在,则替换该表。数据类型也需要匹配。

出于几个原因,我希望避免使用SQLAlChemy的TO_SQL函数。

import pandas as pd
from getpass import getpass
import psycopg2

your_pass = getpass(prompt='Password: ', stream=None)
conn_cred = {
 'host': your_host,
 'port': your_port,
 'dbname': your_dbname,
 'user': your_user,
 'password': your_pass
}
conn = psycopg2.connect(**conn_cred)
conn.autocommit = True

my_data = {'col1': [1, 2], 'col2': [3, 4]}

def store_dataframe_to_postgre(df, schema, active_conn):
 # df = pandas dataframe to store as a table
 # schema = schema for the table
 # active_conn = open connection to a PostgreSQL db
 # ...
 # Bonus: require explicit commit here, even though conn.autocommit = True


store_dataframe_to_postgre(my_data, 'my_schema', conn)

这应该是postgre数据库中的结果:

SELECT * FROM my_schema.my_data;
col1  col2
  1  3
  2  4

推荐答案

您可以尝试,但以下代码位于您的:

 cursor = conn.cursor() cur.copy_from(df, schema , null='', sep=',', columns=(my_data))

参考代码:
copy dataframe to postgres table with column that has defalut value

好了关于 pandas 数据帧到PostgreSQL表中使用的是没有SQLAlChemy的心理复制2吗?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。