【发布时间】:2017-12-06 16:40:59
【问题描述】:
我有一个如下所示的熊猫数据框
>>> df.head()
0 1 2 3 4 5 6
0 35000 26009 OPTIDX BANKNIFTY XX 1499351400 BANKNIFTY1770621000CE
1 35001 26009 OPTIDX BANKNIFTY XX 1499351400 BANKNIFTY1770621000PE
2 35002 26000 OPTIDX NIFTY XX 1609425000 NIFTY20DEC10400CE
3 35003 26000 OPTIDX NIFTY XX 1609425000 NIFTY20DEC10400PE
4 35004 26009 OPTIDX BANKNIFTY XX 1499956200 BANKNIFTY1771321100CE
我想按第 5 列按排序顺序对它们进行分组,并返回前 n 个组,其中 n 可以作为变量给出。
我做了df.sort_values(5).groupby([5]) 我得到了<pandas.core.groupby.DataFrameGroupBy object at 0x2afc8d0>
如何获取前 2 组中的所有行。在上面的示例 df 中,第 1 组为 1499351400,第 2 组为 1499351400,第 3 组为 1609425000
预期输出:当需要组时 =2
0 1 2 3 4 5 6
0 35000 26009 OPTIDX BANKNIFTY XX 1499351400 BANKNIFTY1770621000CE
1 35001 26009 OPTIDX BANKNIFTY XX 1499351400 BANKNIFTY1770621000PE
4 35004 26009 OPTIDX BANKNIFTY XX 1499956200 BANKNIFTY1771321100CE
更新1:在尝试@jezrael's之后
>>> k2=k1[k1.groupby(5).ngroup() < 2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/python/2.7/lib/python2.7/site-packages/pandas/core/groupby.py", line 529, in __getattr__
(type(self).__name__, attr))
AttributeError: 'DataFrameGroupBy' object has no attribute 'ngroup'
附加:没有熊猫(只有python)是否可以做到这一点,我可能并不总能找到带有熊猫的机器。谢谢
【问题讨论】:
标签: python pandas pandas-groupby