Как выполнить слияние, когда несколько строк пусты - PullRequest
0 голосов
/ 09 декабря 2018

Допустим, у нас есть dataframe1, который выглядит как

tag     random
English abc
French  xyz
Chinese poi

, а dataframe2 выглядит следующим образом

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 Ответ

0 голосов
/ 09 декабря 2018

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...