python - 获取每个列值最常见的列

标签 python pandas split-apply-combine

我想要每个数字最常见的字母。我尝试过各种各样的事情;不确定什么是正确的方法。

import pandas as pd
from pandas import DataFrame, Series

original = DataFrame({
    'letter': {0: 'A', 1: 'A', 2: 'A', 3: 'B', 4: 'B'}, 
    'number': {0: '01', 1: '01', 2: '02', 3: '02', 4: '02'}
})

expected = DataFrame({'most_common_letter': {'01': 'A', '02': 'B'}})

理想情况下,我希望最大限度地提高可读性。

最佳答案

我们可以使用DataFrame.mode()方法:

In [43]: df.groupby('number')[['letter']] \
           .apply(lambda x: x.mode()) \
           .reset_index(level=1, drop=True)
Out[43]:
       letter
number
01          A
02          B

关于python - 获取每个列值最常见的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44403937/

相关文章:

python - 有效地将具有元组键和列表值的字典转换为 DataFrame

python - 如何使用 pandas.plot() 更改标记大小

python - 如何将代码构造编写为函数

python - 通过复制规范化数据

python - 将列表读入 pandas DataFrame 的列

python - 在 Python 中发送非 ASCII POST 请求?

python - 如何在 Pandas.Series 中添加时间戳?

python - 将 3 列合并为一列 pandas

python - 如何避免 for 循环并正确迭代 pandas 数据框?

python - 从存储在一个 dict 对象中的多个有序字典中提取项目