【发布时间】:2023-03-21 08:42:02
【问题描述】:
我在某些行中有一个带有 NULL 值的 Python 数据框,在插入到 postgresql 时,datetype 列中的一些 null 变成了 'NaT' 字符串或 'NaN',我喜欢它是一个真正的 NULL ,这没什么细胞。
插入前的示例数据帧
import psycopg2
import pandas as pd
import numpy as np
conn=psycopg2.connect(dbname= 'myDB', host='amazonaws.com',
port= '2222', user= 'mysuser', password= 'mypass')
cur = conn.cursor()
df= pd.DataFrame({ 'zipcode':[1,np.nan,22,88],'city':['A','h','B',np.nan]})
subset = df[['zipcode', 'city']]
data = [tuple(x) for x in subset.values]
records_list_template = ','.join(['%s'] * len(data))
insert_query = 'insert into public.MyTable (zipcode, city) values {}'.format(records_list_template)
cur.execute(insert_query, data)
conn.commit()
生成 postgresql 表
预期结果如下
【问题讨论】:
标签: python python-3.x postgresql amazon-redshift psycopg2