【发布时间】:2016-04-29 17:32:50
【问题描述】:
我有一组行,我想按标识符的值进行分组 - 存在于每一行中 - 然后对将成为此结果的组进行进一步的隔离处理。
我的数据框如下所示:
In [50]: df
Out[50]:
groupkey b c d e date
0 C1 b1 c1 d1 e1 2014-10-26 12:13:14
1 C2 NaN c2 d2 e2 2014-11-02 12:13:14
2 C1 b3 c3 d3 e3 2014-11-09 12:13:14
3 C1 b4 NaN d4 e4 2014-11-16 12:13:14
4 C3 b5 c5 d5 e5 2014-11-23 12:13:14
5 C2 b6 c6 d6 e6 2014-11-30 12:13:14
如果我要按 groupkey 分组,我知道我应该只处理返回的 GroupBy:
>> df.groupby('groupkey')
但是,在分组之前以及为了减少数据集大小的并行目的,我不想考虑每组只有一条记录的任何行(如果以上述方式分组)。
在我的示例中,这意味着应该省略行 4。
现在,在我看来,计算每组记录的最简单方法当然是先分组,然后计算记录,如下所示:
>> df.groupby('groupkey').count()
我想我可以这样做,然后删除只有一条记录的组。
我不确定如何解决此问题,而无需手动返回并删除只有一条记录的组。
我想知道是否有办法按某些函数进行分组,让我在分组时考虑到这种情况?
感谢您的帮助
【问题讨论】: