[英]Groupby with conditions in pandas
我有一個pd.DataFrame
看起來像這樣:
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
我想找到一種方法:
所需的輸出如下所示:
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
任何想法非常感謝,謝謝!
看起來需要先sort_values
然后filter
:
df.sort_values(by='DATES', inplace=True)
df = df.groupby('UID', sort=False).filter(lambda x: x.A.iloc[0] == True)
print (df)
DATES UID A
2 2014-01-03 3 True
3 2014-01-04 4 True
5 2014-01-06 6 True
8 2014-01-09 3 False
10 2014-01-11 3 False
11 2014-01-12 4 False
13 2014-01-14 3 False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.