如何上传大熊猫数据帧到IBM DB2数据库

问题描述 投票:0回答:1

我想上传大熊猫数据帧到IBM DB2数据帧。但是,我不能设法找到一次加载整个数据集的方法。

import ibm_db
dsn_driver = "IBM DB2 ODBC DRIVER"
dsn_database = "BLUDB"
dsn_hostname= "dashdb-txn-xxxxx.eu-gb.bluemix.net"
dsn_port="5xx00"
dsn_protocol="TCPIP"
dsn_uid="xxxxx"
dsn_pwd="xxxx"

dsn = (
    "DRIVER={{IBM DB2 ODBC DRIVER}};"
    "DATABASE={0};"
    "HOSTNAME={1};"
    "PORT={2};"
    "PROTOCOL=TCPIP;"
    "UID={3};"
    "PWD={4};").format(dsn_database, dsn_hostname, dsn_port, dsn_uid, dsn_pwd)

try:
    conn = ibm_db.connect(dsn, "", "")
    print('Connected')
except:
    print('Unable to connect to database', dsn)

d = {'col1': [1, 2,3,4,5,6,7,8,9,10], 'col2': [3, 4,3,4,5,6,7,8,2,34], 'col3': [1, 2,3,14,5,36,72,8,9,10],}
import pandas as pd
df = pd.DataFrame(data=d)
df

到目前为止,我设法成功地连接到IBM DB2数据库,上传大熊猫数据框的其余步骤是我也不清楚,我试图从谷歌的几个选项,似乎没有一个是工作。

为了使问题容易,我创建了一个样本数据框大熊猫(DF,上文)。任何帮助页面或文档赞赏。

谢谢POOJA

python-3.x pandas db2
1个回答
2
投票

下面的代码工作对我来说既蟒蛇3.5.2和2.7.12,ibm_db_sa 0.3.4,使用DB2 v11.1.4.4

调整参数.to_sql,以满足您的要求。

添加异常处理的要求。

import ibm_db
import pandas as pd
from sqlalchemy import create_engine


dsn_driver = "IBM DB2 ODBC DRIVER"
dsn_database = "..."
dsn_hostname= "..."
dsn_port="60000"
dsn_protocol="TCPIP"
dsn_uid="..."
dsn_pwd="..."

d = {'col1': [1, 2,3,4,5,6,7,8,9,10], 'col2': [3, 4,3,4,5,6,7,8,2,34], 'col3': [1, 2,3,14,5,36,72,8,9,10],}

df = pd.DataFrame(data=d)

engine = create_engine('ibm_db_sa://'+ dsn_uid + ':' + dsn_pwd + '@'+dsn_hostname+':'+dsn_port+'/' + dsn_database )

df.to_sql('pandas1', engine)
© www.soinside.com 2019 - 2024. All rights reserved.