Разделение информационного кадра на группы при условии - PullRequest
0 голосов
/ 01 октября 2019

У меня есть фрейм данных с приведенной ниже структурой:

Id.    Value.

 1. 10
 2. 12
 3. 14
 4. 16
 5. 30
 6. 32
 7. 35
 8. 36
 9. 60
 10. 61
 11. 63
 12. 67
 13. 70

И я хочу разделить его на несколько групп, используя условный оператор, который сравнивает последующие строки в моем фрейме данных. Каков наилучший способсделать это?

1 Ответ

1 голос
/ 01 октября 2019

IIUC, вы можете попробовать это:

s = pd.Series([10,12,14,16,30,32,35,36,60,61,63,67,70])
s.groupby((s.diff() >= 10).cumsum()).apply(list)

Вывод:

0        [10, 12, 14, 16]
1        [30, 32, 35, 36]
2    [60, 61, 63, 67, 70]
dtype: object

Для кадра данных:

df = pd.DataFrame({'id':np.arange(1,14),
                  'Value':[10,12,14,16,30,32,35,36,60,61,63,67,70]})

df.groupby(df['Value'].diff().ge(10).cumsum())['Value'].apply(list).tolist()

Вывод:

[[10, 12, 14, 16], [30, 32, 35, 36], [60, 61, 63, 67, 70]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...