我有一个具有多个索引的数据框,并且想创建一些数据的滚动总和,但是对于索引中的每个 id。
例如,假设我有两个索引(Firm和Year),并且我有一些名为zdata的数据。工作示例如下:
import pandas as pd
# generating data
firms = ['firm1']*5+['firm2']*5
years = [2000+i for i in range(5)]*2
zdata = [1 for i in range(10)]
# Creating the dataframe
mydf = pd.DataFrame({'firms':firms,'year':years,'zdata':zdata})
# Setting the two indexes
mydf.set_index(['firms','year'],inplace=True)
print(mydf)
zdata
firms year
firm1 2000 1
2001 1
2002 1
2003 1
2004 1
firm2 2000 1
2001 1
2002 1
2003 1
2004 1
现在,我想为每家公司重新开始滚动总和。但是,如果我输入
new_rolling_df=mydf.rolling(window=2).sum()
print(new_rolling_df)
zdata
firms year
firm1 2000 NaN
2001 2.0
2002 2.0
2003 2.0
2004 2.0
firm2 2000 2.0
2001 2.0
2002 2.0
2003 2.0
2004 2.0
它没有考虑多重索引,只是做一个正常的滚动总和。任何人都知道我应该怎么做(特别是因为我有比 2 更多的索引(公司、工人、国家、年份)
谢谢,
阿德里安