我知道有很多关于大熊猫的群体过滤问题,但是我已经经历了很多大熊猫,他们没有我需要的东西。
无论如何,这是我对数据框df
所拥有的内容:
user1 user2 date quantity
-----------------------------
Alice Bob 2018-05-21 100
Alice Bob 2018-05-19 20
Alice Carol 2018-01-01 1000
Bob Carol 2018-02-01 100
我想计算工作日的给定func
对数量的函数(让我们说一些函数user1-user2
)。
到目前为止我所拥有的是:
df['day'] = df['date'].dt.weekday
df.groupby(['user1','user2']).filter(lambda x: (x.day < 5).any() )
但我没有得到我所期望的。显然,过滤器的作用是仅选择其中至少有一个day
条目是&lt; 5.我需要的是,对于一个特定的day
对,user1-user2
列小于5的所有行。
答案 0 :(得分:3)
一个简单的解决方案是在执行groupby
前过滤您的数据框:
res = df[df['date'].dt.weekday < 5].groupby(...)