在下面的数据框中,有三列:年、月、VAL。我试图过滤掉低于某个阈值(即2007年)的年份值,然后获得分组月份的平均VAL(i、 e第9个月分别在200620006年(少于2007年)有三个值,因此合计总数(2.9+8+9)。我试过多种方法,但有些方法不太对劲。现在我犯的错误是“Keu错误'年'”,你知道我做错了什么吗? 提前谢谢
df2 = pd.DataFrame({'year': [2005,2006,2007,2005,2008,2006,2004,2007,2001,2006], 'month':
[7,9,12,7,9,8,6,2,9,9], 'vals': [1.2,2.9,3.5,4.3,1.3,1.7,2.6,4.3,8.0,9.0]})
print(df2)
def mn(x,ylt):
if x['year'] < ylt:
return x.mean()
df2.groupby('month')['vals'].apply(lambda x: mn(x,2007))
首先按^{} 筛选,然后聚合
mean
:如果需要所有月份,也可以通过所有可能唯一的} :
months
添加不匹配的^{您的函数应该通过筛选进行更改,但不幸的是,如果大型
DataFrame
中有许多组:相关问题 更多 >
编程相关推荐