Python 3.x 如何显示数据帧列中出现次数最多的行?

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

我有一个包含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      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]]
谢谢!我没想过