我有这样的数据帧:
Index Name Age NestedDict
1 Adam 45 {"Dataobject":[{"Adam":26, "id":69},{"Adam":45, "id":63},{"Adam":40, "id":20}]
2 etc
我想: 对于DF中的每个记录,将Age列中的值与NestedDict列中dict中的每个“Adam”值进行比较,如果匹配,则将其“id”值分配给新列,理想情况下从dict中删除其他“Adams”
我知道我可以用“apply”访问dict:
DF.NestedDict.apply(lambda x: x.get("Dataobject")
我试着从格言中得到“亚当”的值,就像这样:
DF.NestedDict.apply(lambda x: [i.get("Adam") for i in x.get("Dataobject")])
这让我
[26, 45, 40]
但是,我不知道如何设置if条件来比较列表中的每个值数据框年龄如果有匹配的话,那么如何从dict中得到id
将嵌套列表理解与
zip
一起使用,如果不存在,还将通过next
以默认字符串no match
返回第一个匹配值:样本:
相关问题 更多 >
编程相关推荐