Pandas 所有指数的平均仓位值

Pandas 所有指数的平均仓位值,pandas,Pandas,我有一个数据争论的问题,我被难住了。我正在尝试将数据分组到指定的存储箱中,并取总和的平均值: import pandas as pd import numpy as np df = pd.DataFrame( data = {'year':np.arange(1800,2000,1),'var1':np.random.randint(0,20,200),'var2':np.random.randint(0,20,200)}) thresholds = np.arange(0,20,1) bin

我有一个数据争论的问题,我被难住了。我正在尝试将数据分组到指定的存储箱中,并取总和的平均值:

import pandas as pd
import numpy as np

df = pd.DataFrame( data = {'year':np.arange(1800,2000,1),'var1':np.random.randint(0,20,200),'var2':np.random.randint(0,20,200)})
thresholds = np.arange(0,20,1)
bins = pd.cut(df.var2, thresholds)

grouped = df.groupby(['year', bins]).count()
grouped = grouped.fillna(0)
grouped = grouped.assign(Num_Events = grouped.groupby('var1').var2.cumsum())

grouped = grouped.unstack()
我想取每个bin(即列)在
分组
”索引中指定的所有日历年的
Num_事件的平均值<代码>分组的['Num_Events'].head()
看起来像:

var2  (0, 1]  (1, 2]  (2, 3]  (3, 4]  ...  (15, 16]  (16, 17]  (17, 18]  (18, 19]
year                                  ...                                        
1800     0.0     0.0     0.0     0.0  ...       0.0       0.0       0.0       0.0
1801     0.0     0.0     0.0     0.0  ...       0.0       0.0       0.0       0.0
1802     0.0     0.0     0.0     0.0  ...       0.0       0.0       0.0       2.0
1803     0.0     0.0     0.0     0.0  ...       0.0       0.0       0.0       0.0
1804     0.0     0.0     0.0     0.0  ...       0.0       0.0       0.0       0.0
我想要看起来像的期望输出

var2  (0, 1]                (1, 2]              (2, 3]              (3, 4]            ...       (15, 16]                (16, 17]                (17, 18]              (18, 19]
year                                  ...                                        
1800   <avg bin [0,1]>     <avg bin [1,2]>     <avg bin [2,3]>     <avg bin [3,4]>  ...       <avg bin [15,16]>       <avg bin [16,17]>       <avg bin [17,8]>      <avg bin [18,19]>
var2(0,1](1,2)(2,3)(3,4)…(15,16)(16,17)(17,18)(18,19)
年。。。
1800                    ...                           

谢谢!

我对输出结果有点困惑。如果平均值是跨所有日历年的,为什么会有一年?在这种情况下,如果您需要19个数字,所有年份中每列的平均值,它是
分组的['Num_Events']。mean()
?我对输出结果有点困惑。如果平均值是所有日历年的,为什么会有一年?在这种情况下,如果您需要19个数字,即所有年份中每列的平均值,那么它是分组的['Num_Events']。mean()?