У меня есть кадр данных pandas, как показано ниже.
>>> 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>
Как получить все строки в первых двух группах. В приведенном выше примере 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'
Дополнительно: Можно ли обойтись без панд (только питон), я не всегда могу найти машины с пандами на них. Спасибо