代码之家  ›  专栏  ›  技术社区  ›  sgerbhctim

多行为空时如何执行合并

  •  1
  • sgerbhctim  · 技术社区  · 6 年前

    假设我们有一个dataframe1

    tag     random
    English abc
    French  xyz
    Chinese poi
    

    language  translation data
    English   hello       5
              hi          3
              hey         1
    Chinese   nihao       4
              xyz         0
    Dutch     oy          9
    French    bonjour     7
    

    我希望实现如下所示的数据帧:

    output
    
    tag      translation data
    English  hello       5
    Chinese  nihao       4
    French   bonjour     7
    

    我明白我需要做一些类似的事情

    df = pd.merge(df1, df2, left_on='tag', right_on='language')
    

    但是当我这样做的时候,我会犯很多错误。。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Vaishali    6 年前

    df2是一个系列而不是数据帧,按多索引的0级将其分组,选择第一行并重置索引以将系列转换为数据帧。现在使用合并。

    df1[['tag']].merge(df2.groupby(level=0).head(1).reset_index(),\
    left_on = 'tag', right_on = 'language', how = 'left').drop('language', axis = 1)
    
        tag     translation data
    0   English hello       5
    1   French  bonjour     7
    2   Chinese nihao       4