代码之家  ›  专栏  ›  技术社区  ›  little girl

python hlookup查找函数

  •  0
  • little girl  · 技术社区  · 6 年前

    我有两个这样的数据帧,我想合并 df2 信息来自 df1

    DF1型

    Topic1  Topic2  Topic3  
    Aa        Bb      Cc  
    Dd        Ee      Ff  
    Gg        Hh      Ii
    

    DF2

    My_topics    
    Topic2
    Topic3
    Topic1
    

    所需输出为

    My_topics   Word1  Word2  Word3 
    Topic2      Bb      Ee    Hh
    Topic3      Cc      Ff    Ii
    Topic1      Aa      Dd    Gg
    

    我用过 lookup 函数,但无法获得所需的输出。

    df2['Word1'] = df1.set_index('I dont know what put here').lookup(df2['My_topics'],df2['My_topics'])
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   timgeb    6 年前

    鉴于

    >>> df1
      Topic1 Topic2 Topic3
    0     Aa     Bb     Cc
    1     Dd     Ee     Ff
    2     Gg     Hh     Ii
    >>> 
    >>> df2
      My_topics
    0    Topic2
    1    Topic3
    2    Topic1
    

    你可以发布

    >>> df3 = pd.concat([df2, df1.reindex(columns=df2['My_topics']).T.reset_index(drop=True)], axis=1)
    >>> new_names = {i:'Word{}'.format(i + 1) for i in range(len(df1.columns))}
    >>> df3.rename(columns=new_names, inplace=True)
    >>> 
    >>> df3
      My_topics Word1 Word2 Word3
    0    Topic2    Bb    Ee    Hh
    1    Topic3    Cc    Ff    Ii
    2    Topic1    Aa    Dd    Gg