假设我有一个字典列表,如下所示:
[{'source_id': '1', 'source_desc': 'XML1'},
{'source_id': '2', 'source_desc': 'XML2'},
{'source_id': '3', 'source_desc': 'XML3'}]
现在,我有一个熊猫数据帧,如下所示:
di = [{'source_id': '1','city':'NY'},
{'source_id': '2','city':'Santiago'},
{'source_id': '3','city':'Berlin'}]
dff=pd.DataFrame(di)
dff
现在,我想在前面的字典集合的基础上添加一个列source_desc。 我试过:
dff['source_desc'] = dff['source_id'].astype(str).apply(lambda x: d['source_desc'] for d in di if d['source_id'] == x)
我不明白为什么这不起作用
编辑: 所需的输出将是类似于:
desired = [{'source_id': '1','city':'NY','source_desc': 'XML1' },
{'source_id': '2','city':'Santiago','source_desc': 'XML2'},
{'source_id': '3','city':'Berlin','source_desc': 'XML3'}]
desired_df=pd.DataFrame(desired)
desired_df
最好让pandas处理read方法,然后使用
merge
方法它成为一个生成器,您需要
next
:只需数据帧和合并。代码如下
输出
相关问题 更多 >
编程相关推荐