在每组另一个通用数据集中找到数据帧中最通用的单元格

时间:2019-05-08 09:04:03

标签: python pandas aggregate frequency

我有一个数据集,其中包含列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,该列显示每个lang中最常见的interactionId。我想要的输出如下所示:

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

我找到了Pandas: Find most common string per person,但是这里的返回值是基于两列的,并且输出是基于单个组项目的,而不是添加到数据集中。

谁知道该怎么做?

1 个答案:

答案 0 :(得分:2)

GroupBy.transformSeries.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