【发布时间】:2021-02-17 11:48:31
【问题描述】:
我有一个 1M 行和 4 列的数组。我想在所有列中找到最常见的一系列数字。即,如果 8.1, -3.2, 3.4, 5.1 出现的最大次数,我想得到它,如果可能的话,行的索引。
我正在尝试使用 Python 的集合/计数器,但似乎无法得到我需要的东西。有什么建议吗?
【问题讨论】:
我有一个 1M 行和 4 列的数组。我想在所有列中找到最常见的一系列数字。即,如果 8.1, -3.2, 3.4, 5.1 出现的最大次数,我想得到它,如果可能的话,行的索引。
我正在尝试使用 Python 的集合/计数器,但似乎无法得到我需要的东西。有什么建议吗?
【问题讨论】:
每列使用Series.mode,并选择Series的第一个值:
s = df.apply(lambda x: x.mode().iat[0])
然后对于索引比较 Series 在DataFrame.eq 中的值并创建字典:
ind = {k: v.index[v].tolist() for k, v in df.eq(s).items()}
【讨论】: