GROUPBY与大熊猫条件
问题描述:
我有一个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)具有'A'的所有UID == 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
你能告诉你的努力,比如你有没有试过['groupby'](http://pandas.pydata.org/pandas-docs /stable/groupby.html)? – EdChum
是的,我用'groupby'这样试过:在[31]:df123 = df.sort_values(by ='DATES')。groupby('UID') In [32]:df123 Out [32 ]:并且它是一个创建的对象,不知道如何过滤出正确的条目。 –
Thanos
请编辑您的问题与您的尝试 – EdChum