-1

我有一个按比赛排列的 NBA 球员数据集,我想知道是否有一种方法可以获得通常用于连续值的模式统计等价物,但要获得最常出现的字符串值?

    t1_start1           t1_start2          t1_start3       t1_start4    t1_start5   team1
0   Shaquille O'Neal    Kobe Bryant         Horace Grant    Ron Harper  Rick Fox    LAL
1   Shaquille O'Neal    Kobe Bryant         Horace Grant    Ron Harper  Rick Fox    LAL
2   Kobe Bryant         Shaquille O'Neal    Horace Grant    Ron Harper  Brian Shaw  LAL
3   Kobe Bryant         Shaquille O'Neal    Horace Grant    Brian Shaw  Ron Harper  LAL
4   Kobe Bryant         Shaquille O'Neal    Horace Grant    Ron Harper  Brian Shaw  LAL
5   LeBron James        Brandon Ingram      Kyle Kuzma      JaVale McGeeLonzo  Ball  LAL

无论球员首发球员的顺序(t1_start1 | t1_start2 | t1_start3 | ... )如何,我将如何获得过去 3 行中按“team1”列分组的 5 个最常用球员?

4

2 回答 2

1

您可以np.unique()使用return_counts=Truenp.argsort()

players, starts = np.unique(df[['t1_start1','t1_start2','t1_start3','t1_start4','t1_start5']].values, return_counts=True)

players[np.argsort(-starts)][:5]

回报:

['Horace Grant' 'Kobe Bryant' 'Ron Harper' "Shaquille O'Neal" 'Brian Shaw']
于 2018-12-03T21:03:04.960 回答
0
flat_list = df.loc[[0:3]].values.flatten() # first 3 rows flattened to a 1d list
print(scipy.stats.mode(flat_list).mode) # the most common element in that list

如果你想要多个值,你可以使用 collections.Counter

most_common_5 = collection.Counter(flat_list).most_common(5)
于 2018-12-03T20:44:10.493 回答