有条件地重采样以获得每月平均值

时间:2019-02-18 18:21:07

标签: python for-loop conditional

我有一个包含4列和大约2000行的df。

前2列是第0个月的分位数,第12列是第12列的分位数,第3列是值,第4列是日期。

我要捕获的是平均每月平均值 例如,如果第1列= 1,第2列,则获得所有具有相同十分位数的股票的月平均值。 但不幸的是,我变得空白

我的代码

for i in Labels=list(range(1,11):       
      for j in Labels=list(range(1,11):     
            dec2=dec2.loc[(dec2[decileT0]==i)&(dec2[decileT12]==j)]    
            dec2.value.resample('M', on='DATEID').mean()

数据样本

decileT0    decileT12   value        DATEID
6              6    -0.097774341    31/03/2006
4              5    -0.096971416    28/02/2006
1              2    -0.096923155    31/07/2006
6              6    -0.096895966    30/09/2007

2 个答案:

答案 0 :(得分:1)

我不确定这是否是问题,但是您在代码中缺少一些方括号。它甚至可以编译吗?

我在下面加上括号:

for i in Labels=list(range(1,11)):       
      for j in Labels=list(range(1,11)):     
            dec2=dec2.loc[ ( dec2[decileT0] == i ) & ( dec2[decileT12] == j ) ]    
            dec2.value.resample('M', on='DATEID').mean()

答案 1 :(得分:0)

对不起,我在发布之前并没有真正运行简化版,范围是在一个函数中,因此我已经运行了类似的代码,但在完整代码中却遇到了同样的错误。

Labels = list(range(1,11))
for i in Labels:       
      for j in Labels:     
            dec3=dec2.loc[(dec2['decileT0']==i)&(dec2['decileT12']==j)]    
            dec3.value.resample('M', on='DATEID').mean()