У меня есть pd.DataFrame
, который выглядит следующим образом:GroupBy с условиями в панд
In [30]: df
Out[30]:
DATES UID A
0 2014-01-01 1 False
1 2014-01-02 2 False
2 2014-01-03 3 True
3 2014-01-04 4 True
4 2014-01-05 5 False
5 2014-01-06 6 True
6 2014-01-07 1 False
7 2014-01-08 2 False
8 2014-01-09 3 False
9 2014-01-10 2 False
10 2014-01-11 3 False
11 2014-01-12 4 False
12 2014-01-13 5 False
13 2014-01-14 3 False
14 2014-01-15 1 False
и я хотел бы найти способ:
- Сортировать по СРОКИ ASC
- группы по UID
- Отфильтровать все UID, где первая запись (в UID) имеет «A» == False
Нужный результат будет выглядеть следующим образом:
In [30]: df
Out[30]:
DATES UID A
0 2014-01-03 3 True
1 2014-01-04 4 True
2 2014-01-06 6 True
3 2014-01-09 3 False
4 2014-01-11 3 False
5 2014-01-12 4 False
6 2014-01-14 3 False
Любые идеи очень ценится, спасибо!
Вы можете показать свои усилия, например, вы пробовали [ 'groupby'] (http://pandas.pydata.org/pandas-docs /stable/groupby.html)? – EdChum
Да, я пробовал с 'groupby' следующим образом: В [31]: df123 = df.sort_values (by = 'DATES'). Groupby ('UID') В [32]: df123 Out [32 ]: и это объект, который создан, но не уверен, как отфильтровать правильные записи. –
Thanos
Пожалуйста, отредактируйте ваш вопрос своими попытками – EdChum