我有一个数据集,其中包含 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
我找到了Pandas: Find most common string per person ,但是这里返回的值基于两列,并且输出来自每个组项目,而不是添加到数据集。
谁知道怎么做?
最佳答案
使用GroupBy.transform
与 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
关于python - 查找数据框中每组另一个常见单元格中最常见的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56037135/