为了账号安全,请及时绑定邮箱和手机立即绑定

按列分组以查找另一列中最频繁的值?

按列分组以查找另一列中最频繁的值?

波斯汪 2021-06-05 17:09:51
按列分组以在另一列中查找最频繁的值。例子:import pandas as pdd = {'col1': ['green','green','green','blue','blue','blue'],'col2': ['gx','gx','ow','nb','nb','mj']}df = pd.DataFrame(data=d)df给出:col1   col2green  gxgreen  gxgreen  owblue   nbblue   nbblue   xv结果:因为green拥有gx和blue拥有nb
查看完整描述

2 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

您可以使用GroupBy+transformpd.Series.modedrop_duplicates


使用此解决方案,可以维护原始数据帧中的索引。它假设只有一种模式,因此每组过滤一种模式。


modes = df.groupby('col1')['col2'].transform(lambda x: x.mode().iat[0])

res = df[df['col2'] == modes].drop_duplicates()


print(res)


    col1 col2

0  green   gx

3   blue   nb


查看完整回答
反对 回复 2021-06-06
  • 2 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信