按列分组以在另一列中查找最频繁的值。例子: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
+transform
与pd.Series.mode
再drop_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
添加回答
举报
0/150
提交
取消