作为python的新手,我正在为错误“与系列不兼容的索引器”而苦苦挣扎。
我正在从PostgreSQL数据库中读取条目:
df_postgresDB = pd.read_sql_query('SELECT * FROM public.json_view',con=<...>)
exampleKey = 'FPB-83160'
jsonCol = 'efforts'
AreasDict = df_postgresDB.loc[exampleKey, jsonCol]
print('AreasDict=', AreasDict)
print('type(AreasDict)=', type(AreasDict))
...输出:
AreasDict= {'4G NeVe': 0, '4G FT ET': 400, '4G C-Plane': 800, 'MANO BTSSM': 0}
type(AreasDict)= <class 'dict'>
postgreSQL数据库中的列显示类型'jsonb':
此“ AreasDict”用于另一个我要调用的项目的功能,并在我的项目中重复使用。但是在我的项目中,我需要从另一个来源构建数据。因此,我创建了一个数据框并尝试分配该“ AreasDict”()...
column_names = ['issue_key', jsonCol]
df = pd.DataFrame(index=range(1,2), columns=column_names)
df.iloc[0, 0] = exampleKey
df.iloc[0, 1] = AreasDict
...并在最后一行代码中得到该错误
ValueError:与Series不兼容的索引器
我该怎么办?
答案 0 :(得分:1)
在大熊猫中,非标量值的支持很差-许多功能应该失败。
对于字典列表,解决方案将转换为list
:
jsonCol = 'j'
exampleKey = 'key'
AreasDict= {'4G NeVe': 0, '4G FT ET': 400, '4G C-Plane': 800, 'MANO BTSSM': 0}
column_names = ['issue_key', jsonCol]
df = pd.DataFrame(index=range(1,2), columns=column_names)
df.iloc[0, 0] = exampleKey
df.iloc[0, 1] = [AreasDict]
print (df)
issue_key j
1 key [{'4G NeVe': 0, '4G FT ET': 400, '4G C-Plane':...