【问题标题】:How to use dataframe one column to match dict values to get the dict key如何使用数据框一列匹配字典值以获取字典键
【发布时间】:2020-08-28 21:10:16
【问题描述】:

我有一个数据框,其中有一列包含公司名称: 比如

ID  NAME     dict_key
1   APPLE      NaN
2   GOOGLE     Nan
3   IBM        NaN
4   HP         NaN
5   SAMSUNG    NaN

...

我有一个dict键和对应键的多个值,例如

{1000:['APPLE INC', 'APPLE COMPUTER INC', 'AOPLE INC', 'APPLE'], 1001:['GOOGLE INC', 'GOOGLE','GOOLELL INC']}.....

我想编写一个循环来查看字典中的数据框第二列公司名称是否匹配,例如第一行中的 APPLE 和第一列将与 dict 中的 APPLE 匹配,键为 1000,然后我想分配dict_key 列的键。 非常感谢。

【问题讨论】:

    标签: python pandas dictionary


    【解决方案1】:

    尝试遍历字典并使用每个名称列表调用series.update

    for key, names in my_dict.items():
        df.dict_key.update(df.name.isin(names) * key) # True * 1000 = 1000
    

    【讨论】:

      【解决方案2】:

      所以我认为您希望应用一个自定义函数来运行所有键值对,检查 df['NAME'] 中的值是否在值中。

      def match_company_to_key(company_name):
          for key, value in your_dict.items():
              if company_name in value
                  return key
      
      
      df['dict_key'] = df['NAME'].apply(match_company_to_key)
      

      【讨论】:

        猜你喜欢
        • 2020-09-10
        • 2022-10-14
        • 2020-03-31
        • 1970-01-01
        • 2011-09-24
        • 1970-01-01
        • 2018-02-10
        • 2021-05-26
        • 1970-01-01
        相关资源
        最近更新 更多