如何得到一组每9年的平均值

How to get the average of a group every 9 years

我有一个名为 EPI 的数据框。 它看起来像这样:

它有 104 个国家。每个国家/地区都有从 1991 年到 2008 年(18 年)的值。 我想平均每 9 年一次。因此,每个国家/地区将有 2 个平均值。

编辑: 这是我用来获取平均值的命令。但它给了我每个国家的一个值(平均值)。

aver_economic_growth <- aggregate( HDI_growth_rate[,3], list(economic_growth$cname), mean, na.rm=TRUE)

但我需要获得一个国家/地区每 9 年的平均值。

请注意,我是 r 的新用户,我没有在安装包中找到 pandas!

我认为您可以先将年份转换为日期时间,然后 groupby 使用 resample mean。最后转换为 years.

#sample data for testing
np.random.seed(100)
start = pd.to_datetime('1991-02-24')
rng = pd.date_range(start, periods=36, freq='A')

df = pd.DataFrame({'cname': ['Albania'] * 18 + ['Argentina'] * 18, 
                   'year': rng.year, 
                    'rgdpna.pop': np.random.choice([0,1,2], size=36)})  
#print (df)

df.year = pd.to_datetime(df.year, format='%Y')
df1 = df.set_index('year').groupby('cname').resample('9A',closed='left').mean().reset_index()
df1.year = df1.year.dt.year
print (df1)
       cname  year  rgdpna.pop
0    Albania  1999    1.000000
1    Albania  2008    1.000000
2  Argentina  2017    0.888889
3  Argentina  2026    0.888889