【问题标题】:pandas reference NaN value with multiple keyspandas 使用多个键引用 NaN 值
【发布时间】:2018-04-05 18:11:57
【问题描述】:

我有 2 个数据框,第一个数据框中的 [Trade] 列有 3 个 NaN 值, 我需要用参考数据框填充它们,您可能会在第一个 df 下方看到它。 您可以使用各种方法来填充 NaN 值。加入,合并,连接,替换,任何容易工作的东西。 谢谢

    Trade        ID     Toy_company
0   D255/FE     192     Duplo
1   L217/SN     255     Duplo
2   NaN         195     Lego
3   NaN         256     Duplo
4   D255/FE     192     Duplo
5   D255/FE     192     Duplo
6   D250/AT     192     Duplo
7   D250/AT     192     Duplo
8   L195/AE     195     Lego
9   NaN         195     Lego
10  L256/PE     256     Lego

参考数据框:

   Trade_ID     Item    Company
0   D255/FE     192     Duplo
1   D217/SN     255     Duplo
2   L12A/BA     195     Lego
3   L999/CC     256     Lego

要求: 1.仅根据参考数据框中的信息填写NaN值,在两个键上:Item+Company。如果无法引用,请保留 NaN。 2. 不更正任何现有信息,仅影响 NaN 值

所以最终的结果应该是:

        Trade        ID     Toy_company
    0   D255/FE     192     Duplo
    1   L217/SN     255     Duplo
    2   L12A/BA     195     Lego
    3   NaN         256     Duplo
    4   D255/FE     192     Duplo
    5   D255/FE     192     Duplo
    6   D250/AT     192     Duplo
    7   D250/AT     192     Duplo
    8   L195/AE     195     Lego
    9   L12A/BA     195     Lego
    10  L256/PE     256     Lego

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    你可以使用merge()方法:

    In [347]: d1['Trade'] = (d1['Trade'].fillna(
                                 d1.merge(d2.rename(columns={'Item':'ID','Company':'Toy_company'}),
                                          how='left')['Trade_ID']))
    
    In [348]: d1
    Out[348]:
          Trade   ID Toy_company
    0   D255/FE  192       Duplo
    1   L217/SN  255       Duplo
    2   L12A/BA  195        Lego
    3       NaN  256       Duplo
    4   D255/FE  192       Duplo
    5   D255/FE  192       Duplo
    6   D250/AT  192       Duplo
    7   D250/AT  192       Duplo
    8   L195/AE  195        Lego
    9   L12A/BA  195        Lego
    10  L256/PE  256        Lego
    

    【讨论】:

      猜你喜欢
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 2020-07-14
      • 2016-10-23
      • 2022-08-22
      相关资源
      最近更新 更多