Python 分组和查找最频繁的值
我有这样一个df:Python 分组和查找最频繁的值,python,pandas,Python,Pandas,我有这样一个df: Protein Peptide A AAA A AAA A ABA B AAA B ABA B ABA 但是我需要通过为第1列中的每个值查找第2列中出现频率最高的值来过滤数据 因此,输出将如下所示: Protein Peptide A AAA B ABA 事实上,我甚至需要前三个出现的值。 真的不知道如何使用python和pandas解决这个问题吗?模式不是gr
Protein Peptide
A AAA
A AAA
A ABA
B AAA
B ABA
B ABA
但是我需要通过为第1列中的每个值查找第2列中出现频率最高的值来过滤数据
因此,输出将如下所示:
Protein Peptide
A AAA
B ABA
事实上,我甚至需要前三个出现的值。
真的不知道如何使用python和pandas解决这个问题吗?模式不是groupby方法,尽管它是(and)方法,所以您必须将它传递给:
要获得前三名,您可以使用(同样的方式):
非常感谢。成功了!但我的其他专栏消失了(平均,sd)。如何组合它们?@MPs抱歉,没有回答这个问题,这取决于你想如何组合它们(我不认为这有什么标准的方法是有意义的?)也许可以问一个关于输入和所需输出的新问题-我认为这个问题很好/自包含/googlable atm!)
In [11]: df.groupby('Protein')['Peptide'].apply(lambda x: x.mode()[0])
Out[11]:
Protein
A AAA
B ABA
Name: Peptide, dtype: object
In [12]: df.groupby('Protein')['Peptide'].apply(lambda x: x.value_counts()[:3])
Out[12]:
Protein
A AAA 2
ABA 1
B ABA 2
AAA 1
dtype: int64