Pandas 最高计数字符串的 GroupBy?
Pandas GroupBy for Highest Counted String?
给定一个像这样的 DataFrame:
期望的结果:
有些解决方案与我使用 groupby
和 count
寻找的解决方案很接近,但我不确定如何正确使用。基本上,我希望返回每个符号的计数最高的建议。所以我假设伪代码可能看起来像:
new_df = df.groupby(['Symbol'])['Recommendation'].count().max()
...但这当然是错误的。
你可以申请 mode
:
new_df = df.groupby('Symbol')['Recommendation'].apply(lambda x: x.mode())
我想我们也可以这样做:
s = df.groupby(['Symbol','Recommendation']).size()
s = s.groupby(level=0).transform('max').eq(s)
out = s.index[s].to_frame().reset_index(drop=True)
给定一个像这样的 DataFrame:
期望的结果:
有些解决方案与我使用 groupby
和 count
寻找的解决方案很接近,但我不确定如何正确使用。基本上,我希望返回每个符号的计数最高的建议。所以我假设伪代码可能看起来像:
new_df = df.groupby(['Symbol'])['Recommendation'].count().max()
...但这当然是错误的。
你可以申请 mode
:
new_df = df.groupby('Symbol')['Recommendation'].apply(lambda x: x.mode())
我想我们也可以这样做:
s = df.groupby(['Symbol','Recommendation']).size()
s = s.groupby(level=0).transform('max').eq(s)
out = s.index[s].to_frame().reset_index(drop=True)