熊猫-Groupby内部的汇总,排序和最大

亚历克斯·扎伊采夫(Alex Zaitsev)

我有以下数据框:

                       some_id
2016-12-26 11:03:10        001
2016-12-26 11:03:13        001
2016-12-26 12:03:13        001
2016-12-26 12:03:13        008
2016-12-27 11:03:10        009
2016-12-27 11:03:13        009
2016-12-27 12:03:13        003
2016-12-27 12:03:13        011

我需要使用以下排序来做类似transform('size')的操作,并获得N个最大值。要获得这样的结果(N = 2):

             some_id   size
2016-12-26       001      3
                 008      1
2016-12-27       009      2
                 003      1

在熊猫0.19.x中,有没有做到这一点的优雅方法?

尼克·马维利(Nickil Maveli)

用于value_countsdate部分进行分组后计算非重复计数DateTimeIndex默认情况下,这按降序对它们进行排序。

您只需要获取此结果的最上面两行即可获得最大的(前2个)部分。

fnc = lambda x: x.value_counts().head(2)
grp = df.groupby(df.index.date)['some_id'].apply(fnc).reset_index(1, name='size')
grp.rename(columns={'level_1':'some_id'})

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章