微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

匹配熊猫数据框和列表

如何解决匹配熊猫数据框和列表

我有一个数据框 df 如下

 Number   PT
     
    5        AA
    
    64       BB
  
    7        CC

然后是另一个对象列表,

myList = [{'label': 'AA','value': 'AA','group': 'A'},{'label': 'BB','value': 'BB','group': 'B'}]

我希望每个 PT 从列表中都有关联的组(如果可用),所以结果应该是这样的

    Number       PT    group
         
        5        AA    A
        
        64        BB    B
      
        7        CC    NOT_MATCHED
        

解决方法

d = {'Number': [5,64,7],'PT': ["AA","BB","CC"]}
df = pd.DataFrame(data=d)

myList = [{'label': 'AA','value': 'AA','group': 'A'},{'label': 'BB','value': 'BB','group': 'B'}]    

for i,row in df.iterrows():
  for item in myList:
    if item['value'] == df['PT'][i]:
      df.at[i,'Group'] = item['group']
      break
    else:
      df.at[i,'Group'] = "NOT_MATCHED"
,

尝试:

df['group'] = df.PT.map({tuple(i.values())[0]: tuple(i.values())[
                        2] for i in myList}).fillna('Not Matched')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。