猿问

多行为空时如何进行合并

假设我们有一个 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')

但是当我这样做时我遇到了一堆错误..


慕森王
浏览 117回答 1
1回答

素胚勾勒不出你

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 data0   English hello       51   French  bonjour     72   Chinese nihao       4
随时随地看视频慕课网APP

相关分类

Java
我要回答