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

标签 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,它显示每个 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.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

关于python - 查找数据框中每组另一个常见单元格中最常见的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56037135/

相关文章:

python - 需要 wxPython、特别是 NotebookCtrl 方面的帮助

python - 使用双循环创建 DataFrame

python - pandas ffill 的设置值

python - 如何在 Pandas 数据帧上应用具有模式的 bool 过滤器?

r - 在 dplyr 中按组获取总和后计算列的行百分比

python - 如何处理 SWIG 中的函数模板?

Python:如何在派生类中添加一个空列表

mysql - 在连接表之前使用聚合函数

javascript - 聚合多个对象数组并汇总它们的属性

python - 如何将传感器数据存储到 Apache Hadoop HDFS、Hive、HBase 或其他