查找二维数组中出现次数最多的值

问题描述 投票:0回答:1

我有这样的数据。我想知道整个二维矩阵中出现次数最多的值 哪个是 T-SPA,我还想知道它来自哪个 ac_id? 对此最好的办法是什么。

需要输出像

添加为文本

ac_id   v1_val  v2_val  v3_val
1   T-PA        SpA 
23  T-SPA               T-SPA
24  T-SPA   T-SPA       T-S.P.A
python-3.x
1个回答
0
投票

我假设你有这个数据框:

   ac_id v1_val v2_val   v3_val
0      1   T-PA    SpA      NaN
1     23  T-SPA    NaN    T-SPA
2     24  T-SPA  T-SPA  T-S.P.A

然后要找到最常出现的值,您可以这样做,例如:

out = df.set_index("ac_id").stack().value_counts()
print(out)

打印:

T-SPA      4
T-PA       1
SpA        1
T-S.P.A    1
Name: count, dtype: int64
print(out.index[0])

打印:

T-SPA

找到

ac_id
:

ac_ids = df.loc[df.loc[:, "v1_val":].eq(out.index[0]).any(axis=1), "ac_id"]
print(ac_ids)

打印:

1    23
2    24
Name: ac_id, dtype: int64
© www.soinside.com 2019 - 2024. All rights reserved.