假设我有以下数据框。
df = pd.DataFrame({'group':list('aaaabbbb'),
'hour':[1,3,3,2,5,6,6,2],
'id':[1,1,2,2,2,3,3,3]})
df
我想要做的是找到每组最常见的(模式)唯一小时。
以下情况让我得到每组的小时数。
df[['group','hour']].groupby(['group']).agg(lambda x:x.value_counts().index[0]).reset_index()
现在让我们说我想要小时。我似乎无法在一行中找到答案。
df[['group','hour']] & df.hour==3].groupby(['group']).agg(lambda x:x.value_counts().index[0]).reset_index()
这不起作用。关于如何组合小时== 3并在一行中一起选择列的任何想法
答案 0 :(得分:2)
将boolean indexing
与$value["plate"]
:
loc
答案 1 :(得分:2)
value_count
就是这样,但您也可以尝试mode
df.loc[df.hour==3, ['group','hour']].groupby(['group']).hour.apply(lambda x : x.mode()).reset_index()
Out[519]:
group level_1 hour
0 a 0 3