将数据从pandas数据帧传输到IBM DB2表时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将数据从pandas数据帧传输到IBM DB2表时出错相关的知识,希望对你有一定的参考价值。

我能够在IBM Cloud上建立与db2的连接,但无法将大小为40000 * 150的df复制到表中。这是代码:

data = pd.read_excel("C:UsersPranshuSahijwaniDesktopkpdata@0409Pharma_Automated_Snow.xlsx")
data.fillna("Others")

tuple_of_tuples = tuple([tuple(x) for x in data.values])
#values = ",".join([tuple(x) for x in subset])

cnn = ibm_db.connect("DATABASE=BLUDB;HOSTNAME=dashdb-txn-sbox-yp-lon02- 
01.services.eu-gb.bluemix.net;
PORT=50000;PROTOCOL=TCPIP;UID=uid;PWD=pwd;", "", "")


start = time.time()
placeholders = ', '.join(['?'] * len(data.columns))  
insert_sql = "INSERT INTO zkb70555.regionsAndServers VALUES ( " + placeholders + ")"
stmt_insert = ibm_db.prepare(cnn, insert_sql)
ibm_db.execute_many(stmt_insert, tuple_of_tuples)

end = time.time()
print end-start

我收到的错误如下所示:enter image description here

需要改变什么?

答案

专门传递给execute_many的数组必须具有相同的类型。上述错误表示插入的数据可能不是这种情况。驱动程序在将请求发送到数据库服务器之前检查数据,并且客户端返回此错误。

以上是关于将数据从pandas数据帧传输到IBM DB2表时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据从 ms-access 或 excel 导出到 IBM DB2 I-Series 数据库?

Pandas:根据条件将值从一个数据帧合并到另一个数据帧

Pandas 基于连接将列从一个数据帧添加到另一个数据帧

将文件从私有 S3 存储桶读取到 pandas 数据帧

将数据从 DB2 DB 传输到 greenplum DB

高效地将大型 Pandas 数据帧读取到磁盘