熊猫函数将行插入表中

时间:2019-04-24 09:15:27

标签: python python-3.x pandas pyodbc

我试图通过将CSV文件读取到pandas数据框中来将记录插入到Netezza表中,但是一直出现关键错误。

KeyError: ('columnname', 'totalCount', 'distinctValuesCount')

我在这里错过了什么吗?

Env Stack

python 3.7.0 DB:Netezza 连接:Windows ODBC

我正在使用以下代码:

/* ----------------------------------------------------------------------- */
tmp_df2 : 
|colSeq|batch_id|job_id|file_table_name|columnname|totalCount|distinctValuesCount|maxOccuranceValue|maxOccuranceValueCount|first|last|mean|std|min|25%|50%|75%|max
0|NULL|NULL|NULL|CDR_JOIN_WITH_PROMPT|CALL_ID|4699016.0|139919.0|3768023237|394.0|||||||||
1|NULL|NULL|NULL|CDR_JOIN_WITH_PROMPT|START_TIME|4699016.0|60906.0|2019-04-03 09:08:56|512.0|2019-04-02 23:48:28|2019-04-03 23:54:04|||||||
2|NULL|NULL|NULL|CDR_JOIN_WITH_PROMPT|END_TIME|4699016.0|60728.0|2019-04-03 11:56:31|540.0|2019-04-02 23:54:51|2019-04-03 23:54:36|||||||
3|NULL|NULL|NULL|CDR_JOIN_WITH_PROMPT|ANI|4699016.0|66695.0|0000000000                          |80798.0|||||||||
4|NULL|NULL|NULL|CDR_JOIN_WITH_PROMPT|EXIT_TYPE|4699016.0|3.0|networkxfer         |2430564.0|||||||||

ABC_conn = pyodbc.connect('DRIVER={NetezzaSQL};SERVER=10.10.100.22;PORT=5480;DATABASE=ABC;UID=user;PWD=password;DSN=ODBC_1;Trusted_Connection=yes')
for index,row in tmp_df2.iterrows():
        cur = ABC_conn.cursor()
        cur.executemany("insert into ETL_DQ_INSTANCE(COLUMNNAME,TOTALCOUNT,DISTINCTVALUESCOUNT) values (?, ?, ?)",row["columnname","totalCount","distinctValuesCount"])
        ABC_conn.commit()
    cur.close()
    ABC_conn.close()

/* ----------------------------------------------------------------------- */

1 个答案:

答案 0 :(得分:0)

您似乎想通过这样做从熊猫Series中提取某些列

row["columnname","totalCount","distinctValuesCount"]

但是那行不通。相反,您需要使用类似的

(row["columnname"], row["totalCount"], row["distinctValuesCount"])

将返回包含指定值的元组。