Python 3.x 如何显示数据帧列中出现次数最多的行?
我有一个包含6列的数据框:Python 3.x 如何显示数据帧列中出现次数最多的行?,python-3.x,pandas,Python 3.x,Pandas,我有一个包含6列的数据框: taken person quant reading personal family 0 1 lake rad 9.7 Anderson Lake 1 1 lake sal 0.21 Anderson Lake 2 5 Lim sal 0.08 Andy Lim 3 2 Lim rad
taken person quant reading personal family
0 1 lake rad 9.7 Anderson Lake
1 1 lake sal 0.21 Anderson Lake
2 5 Lim sal 0.08 Andy Lim
3 2 Lim rad 9.82 Andy Lim
4 2 Lim sal 0.13 Andy Lim
5 3 dyer rad 7.7 William Dyer
我想要的输出:
taken person quant reading personal family
0 5 Lim sal 0.08 Andy Lim
1 2 Lim rad 9.82 Andy Lim
2 2 Lim sal 0.13 Andy Lim
基本上,我希望根据personal列中出现的最多次数显示df中的所有行。这是我尝试过的,但不起作用
test = df.personal.mode()
test1 = df.loc[df.personal == test]
display(test1)
您可以将
值\u计数
与布尔索引结合使用:
df[df['person'] == df['person'].value_counts().index[0] ]
输出:
taken person quant reading personal family
2 5 Lim sal 0.08 Andy Lim
3 2 Lim rad 9.82 Andy Lim
4 2 Lim sal 0.13 Andy Lim
请注意,如果有多个人出现的次数相同,则只保留一个人。如果您想保留所有这些模式,mode
和isin
是更好的选择:
df[df['person'].isin(df['person'].mode())]
您已经完成了一半,只需要
test1=df.loc[df.personal==test[0]]
谢谢!我没想过