我有一个很大的df,这是一个说明我的问题的例子。我想从这个数据框架中知道,根据year_of_life,id在工作方面的第一个百分比。我想通过years_of_life识别(我正在考虑一个假人)百分之一的年份,这个分配有更多的工作。
例如
id year rap jobs_c jobs year_of_life rap_new
1 2009 0 300 10 NaN 0
2 2012 0 2012 12 0 0
3 2013 0 2012 12 1 1
4 2014 0 2012 13 2 1
5 2015 1 2012 15 3 1
6 2016 0 2012 17 4 0
7 2017 0 2012 19 5 0
8 2009 0 2009 15 0 1
9 2010 0 2009 2 1 1
10 2011 0 2009 3 2 1
11 2012 1 2009 3 3 0
12 2013 0 2009 15 4 0
13 2014 0 2009 12 5 0
14 2015 0 2009 13 6 0
15 2016 0 2009 13 7 0
16 2011 0 2009 3 2 1
17 2012 1 2009 3 3 0
18 2013 0 2009 18 4 0
19 2014 0 2009 12 5 0
20 2015 0 2009 13 6 0
.....
100 2009 0 2007 5 6 1
我想确定(我正在考虑一个假人)一个百分之一的years_of_life,其中包含更多来自分配的工作,然后将这些工作中的工作按年份_of_life分配给第一个百分比
我尝试像thi这样的东西:
df.groupby(['year_of_life']).filter(lambda x : x.jobs>
x.jobs.quantile(.99))['jobs'].sum()
但我有以下错误
TypeError: filter function returned a Series, but expected a scalar bool
答案 0 :(得分:0)
这是你需要的吗?
df.loc[df.groupby(['year_of_life']).jobs.apply(lambda x : x>x.quantile(.99)).fillna(True),'jobs'].sum()
Out[193]: 102