在每组另一个常见的数据框中查找最常见的单元格

Find the most common cell in a dataframe per group of another common

我有一个包含 id 列和 lang 列的数据集。

>>> all_transcripts

id  lang
1   nl   
1   nl
1   fr
1   nl
2   en
2   nl
2   en
3   nl
3   nl

现在我想创建一个列 actual_lang,显示每个 interactionId 最常见的 lang。我想要的输出如下所示:

id  lang    actual_lang
1   nl      nl
1   nl      nl
1   fr      nl
1   nl      nl
2   en      en
2   nl      en
2   en      en
3   nl      nl
3   nl      nl

我找到了 ,但是这里返回的值基于两列,并且输出来自每个组项目,而不是添加到数据集中。

谁知道怎么做?

使用GroupBy.transform with Series.mode并选择第一个值:

df['actual_lang'] = df.groupby('id')['lang'].transform(lambda x: x.mode().iat[0])
print (df)
   id lang actual_lang
0   1   nl          nl
1   1   nl          nl
2   1   fr          nl
3   1   nl          nl
4   2   en          en
5   2   nl          en
6   2   en          en
7   3   nl          nl
8   3   nl          nl