如果给定日期列a
,我会尝试在列b
中指定的每种类型的产品中获取列c
中30个最新点的平均值。
因此,平均值的计算将基于每个特定Product
的最近30个点,而不是整个DataFrame
的总体最新数据点。
df:
Product Value Date
POL Mumbai 22.5 2015-6-26
STOLCO Finesse 55.5 2015-7-1
MPLR Pure 85.0 2015-8-1
答案 0 :(得分:0)
一般而言,您可以groupby
假设您的数据框名为df
,其列为' b'像这样:
products = df.groupby('b)
然后按如下方式遍历每个产品组:
mean = {}
for product, data in products:
mean[product] = data.sort('c', ascending=False).head(30)['a'].mean()
print DataFrame.from_dict(mean.items(), columns=['Product', 'Mean')
或
print Series(mean)
有关您遇到的错误的详细信息,请参阅here。