简体   繁体   English

匹配熊猫 dataframe 和列表

[英]matching panda dataframe and list

I have a dataframe df as follow我有一个 dataframe df 如下

 Number   PT
     
    5        AA
    
    64       BB
  
    7        CC

Then a another list of objects,然后是另一个对象列表,

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

I want for every PT to have the associated group(when available) from the list, so the result should look like我希望每个 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"

TRY:尝试:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM