我想首先计算entr ==1
时的工作平均值,然后计算jobs
的平均值year_of_life
。
id year entry cohort jobs year_of_life
1 2009 0 NaN 10 NaN
1 2012 1 2012 12 0
1 2013 0 2012 12 1
1 2014 0 2012 13 2
2 2010 1 2010 2 0
2 2011 0 2010 3 1
2 2012 0 2010 3 2
3 2007 0 NaN 4 Nan
3 2008 0 NaN 4 Nan
3 2012 1 2012 5 0
3 2013 0 2012 5 1
非常感谢
答案 0 :(得分:1)
对于第一个,您可以使用布尔索引来过滤条件为True的行的数据帧,然后取平均值df[df.entry == 1].mean()
。对于第二个,groupby year_of_life然后取每个组df.groupby('year_of_life').mean()
的平均值。如果您希望同时满足这两个条件,请尝试分组df[df.entry == 1].groupby('year_of_life').mean()
。
答案 1 :(得分:1)
满足您的第一个要求 -
$_SESSION['SavedValue']=$_POST['mybtn']
满足您的第二个要求 - 在这里,我只考虑df.query('entry == 1').jobs.mean()
6.333333333333333
为entry
的工作。
1
如果你只想要df.assign(jobs=df.jobs.mask(df.entry == 1)).groupby('year_of_life').jobs.mean()
year_of_life
0 NaN
1 6.666667
2 8.000000
Nan 4.000000
Name: jobs, dtype: float64
的意思,那么一个简单的groupby就足够了。
year_of_life
请注意,这与其他答案所暗示的不同,我认为这不是您想要的:
df.groupby('year_of_life').jobs.mean()
year_of_life
0 6.333333
1 6.666667
2 8.000000
Nan 4.000000
Name: jobs, dtype: float64