Pandas:一年前为多个项目创建索引

当我只有一个项目时,我可以创建一个与前一年相比的索引,但是当我有多个项目时,我试图弄清楚如何做到这一点。
这是我的数据集:

Pandas:一年前为多个项目创建索引

rng = pd.date_range('1/1/2011',periods=3,freq='Y')
rng = np.repeat(rng,3)
country = ["USA","Brazil","Japan"]*3
df = pd.DataFrame({'Country':country,'date':rng,'value':range(20,29)})

如果我只有一个项目/国家,我可以这样做:

df['pct_iya'] = 100*(df['value'].pct_change()+1)

我正在尝试让它处理多个项目。这是预期的结果:

Pandas:一年前为多个项目创建索引

也许这可以与 groupby 一起使用,但我的尝试没有奏效...

df['pct_iya2'] = df.groupby(['Country','date'])['value'].pct_change()
Robert1973 回答:Pandas:一年前为多个项目创建索引

答案:使用分组依据(不包括日期),然后在百分比变化上加一个(例如 +15percent 从 0.15 变为 1.15),然后乘以 100。

df['pct_iya'] = 100*(df.groupby(['Country'])['value'].pct_change()+1)
本文链接:https://www.f2er.com/2230.html

大家都在问