假设我们有一个看起来像这样的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')
但是当我这样做时,我会遇到很多错误。
答案 0 :(得分: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 data
0 English hello 5
1 French bonjour 7
2 Chinese nihao 4