gpt4 book ai didi

python-3.x - 带有 datetime64 dtype 的数据框插入到 postgresql 时间戳列

转载 作者:行者123 更新时间:2023-12-05 04:53:03 28 4
gpt4 key购买 nike

我正在获取一个数据框并将其插入到 Postgresql 表中。

数据框中的一列是 datetime64 dtype。 PostgreSQL 中的列类型是“没有时区的时间戳”。为了准备要插入的数据框,我使用了 to_records:

listdf = df.to_records(index=False).tolist()

当我运行 to_records 时,它在 psycopg2 的 cur.executemany() 中给出了一个错误,我试图将 Biginit 插入到没有时区的时间戳中。

所以我尝试将 column_dtypes 的字典添加到 to_records。但这是行不通的。下面给出了错误:“ValueError:无法从 NumPy 日期时间或时间增量中的特定单位转换为通用单位”

DictofDTypes = dict.fromkeys(SQLdfColHAedings,'float')
DictofDTypes['Date_Time'] = 'datetime64'
listdf = df.to_records(index=False,column_dtypes=DictofDTypes).tolist()

我也尝试过 str、int 和 float 类型。以上三行均无效。

如何正确转换列以便能够将列插入到时间戳 sql 列中?

最佳答案

我从 to_records 中删除了数据类型的定义。在 to_recordes 之前,我将日期时间转换为 str:df['Date_Time'] = df['Date_Time'].apply(lambda x: x.strftime('%Y-%m-%d %H:%M:%S'))然后 sql 插入命令起作用。

关于python-3.x - 带有 datetime64 dtype 的数据框插入到 postgresql 时间戳列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66197337/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com