小编Sha*_*dey的帖子

将pandas.DataFrame转换为Python中的字典列表

我有一个字典,从数据帧转换如下:

a = d.to_json(orient='index')
Run Code Online (Sandbox Code Playgroud)

字典:

{"0":{"yr":2017,"PKID":"58306, 57011","Subject":"ABC","ID":"T001"},"1":{"yr":2018,"PKID":"1234,54321","Subject":"XYZ","ID":"T002"}}
Run Code Online (Sandbox Code Playgroud)

我需要的是它在列表中,所以基本上是一个字典列表.所以我只添加一个[],因为这是在其余代码中使用的格式.

input_dict = [a]
Run Code Online (Sandbox Code Playgroud)

input_dict:

['
{"0":{"yr":2017,"PKID":"58306, 57011","Subject":"ABC","ID":"T001"},"1":{"yr":2018,"PKID":"1234,54321","Subject":"XYZ","ID":"T002"}}
']
Run Code Online (Sandbox Code Playgroud)

我需要在[和之前]之后删除单引号.此外,以列表的形式具有PKID值.

怎么能实现这一目标?

预期产出:

[ {"yr":2017,"PKID":[58306, 57011],"Subject":"ABC","ID":"T001"},"1":{"yr":2018,"PKID":[1234,54321],"Subject":"XYZ","ID":"T002"} ]
Run Code Online (Sandbox Code Playgroud)

注意:PKID列有多个整数值,必须作为整数的提升.字符串是不可接受的.所以我们需要像"PKID":[58306,57011]而不是"PKID":"[58306,57011]"

python json dictionary dataframe pandas

8
推荐指数
1
解决办法
5853
查看次数

从 python 数据帧插入到 DB2 表中

我正在使用 python 库 IBM_DB,我可以用它建立连接并将表读入数据帧。从 python 中的数据帧源写入 DB2 表(INSERT 查询)时,问题就出现了。

下面是连接的示例代码,但有人可以帮助我如何将数据帧中的所有记录插入到 DB2 中的目标表中吗?

import pandas as pd
import ibm_db
ibm_db_conn = ibm_db.connect("DATABASE="+"database_name"+";HOSTNAME="+"localhost"+";PORT="+"50000"+";PROTOCOL=TCPIP;UID="+"db2user"+";PWD="+"password@123"+";", "","")
import ibm_db_dbi
conn = ibm_db_dbi.Connection(ibm_db_conn)

df=pd.read_sql("SELECT * FROM SCHEMA1.TEST_TABLE",conn)
print df
Run Code Online (Sandbox Code Playgroud)

如果给定带有硬编码值的 SQL 语法,我也可以手动插入记录:

query = "INSERT INTO SCHEMA1.TEST_TABLE (Col1, Col2, Col3) VALUES('A', 'B', 0)"
print query
stmt = ibm_db.exec_immediate(ibm_db_conn, query)
print stmt
Run Code Online (Sandbox Code Playgroud)

我无法实现的是从数据帧插入并将其附加到表中。我也试过 DATAFRAME.to_SQL() 但它出现以下错误:

df.to_sql(name='TEST_TABLE', con=conn, flavor=None, schema='SCHEMA1', if_exists='append', index=True, index_label=None, chunksize=None, dtype=None)
Run Code Online (Sandbox Code Playgroud)

这错误说:

pandas.io.sql.DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND …
Run Code Online (Sandbox Code Playgroud)

python db2 insert append dataframe

3
推荐指数
1
解决办法
6635
查看次数

标签 统计

dataframe ×2

python ×2

append ×1

db2 ×1

dictionary ×1

insert ×1

json ×1

pandas ×1