Условная повторная выборка для получения среднемесячного значения - PullRequest
0 голосов
/ 18 февраля 2019

у меня есть df с 4 столбцами и примерно 2000 строк.

первые 2 столбца - это децили в месяце 0 и децили в месяце12, а третий - значение, а 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 голосов
/ 19 февраля 2019

извините, Виктор, я действительно не запускал упрощенную версию перед публикацией, диапазон был в функции, поэтому что-то вроде этого я запустил, и я получил ту же ошибку с полным кодом.

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()
0 голосов
/ 18 февраля 2019

Я не уверен, что это проблема, но в вашем коде отсутствуют скобки.Это даже компилируется?

Я поставил скобки ниже:

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()
...