У меня есть кадр данных, который я хотел бы, чтобы сгруппировать по двум параметрам (1) Последовательная нумерация в том же первом столбце и (2) соответствие значения во втором столбцеГруппировка по нескольким параметрам, используя панды dataframe
кадра данных :
In [20]: import pandas as pd
In [21]: df1 = pd.DataFrame ({ "res": [30, 31, 35, 36], "ss": ["H", "H", "H", "E"], "AA": ["A", "B", "C", "D"]})
In [22]: df1
Out[22]:
res ss AA
0 30 H A
1 31 H B
2 35 H C
3 36 E D
Желаемый выход:
group 1: (30, H, A), (31, H, B)
group 2: (35, H, C)
group 3: (36, E, D)
Группа 1 включает в себя первые 2 строки, так как 30 и 31 являются последовательными и второй матч столбцы. Группа 2 создана потому, что 31 и 35 в столбце 1 не являются последовательными. Группа 3 создана потому, что H и E не совпадают.
Я пытаюсь использовать groupby и перечислять вместе, но я не могу их комбинировать.
Identify groups of continuous numbers in a list
grouping rows in list in pandas groupby
Я признателен за любые советы о том, как совместить выборы
Я вообще не понимаю ваш желаемый результат. Что такое «AB, C, D», и как вы его получите из 'df1'? Пожалуйста, отредактируйте свой вопрос, чтобы быть более конкретным. – DSM
@DSM Я редактировал свой вопрос. Надеюсь, теперь это становится яснее. – Vonler01