创建熊猫数据框,其中每个单元格都基于斜率计算以及来自另一个DF的时间序列行

时间:2018-11-21 14:27:32

标签: python pandas dataframe regression

我有一个大约40列和大约100000行的数据框:

ID MONTH_NUM_
   FROM_EVENT F1    F2       F3     F4  etc…
2   1         4.0   133.0   28.0    NaN 
2   2         NaN   132.0   29.0    24.0    
2   3         NaN   131.0   NaN     29.0    
2   4         4.0   130.0   31.0    7.0 
2   5        8.0    129.0   26.0    2.0 
2   6        8.0    128.0   25.0    3.0 
4   1        5.0    139.0   29.0    7.0 
4   2        5.0    138.0   NaN     22.0    
4   3        5.0    137.0   30.0    28.0    
4   4        5.0    136.0   29.0    25.0    
4   5        5.0    135.0   NaN     27.0    
4   6        5.0    134.0   27.0    29.0    

等…

每列F是一个6m的时间序列数据,每个行ID客户端都为NaN

我想输出没有月份的新数据框,像这样:

    ID  F1  F2  F3  F4  etc…
2  
4

等...

其中新数据帧的每个像元是每个F列的6m时间序列的斜率计算,其代码示例如下:

x = [6, 5, 4, 3, 2, 1] #its constanta for each calcul, monthes with reverse orders because 1 is last month before event prediction
y = df.F1[df['ID']==2]

xm = np.ma.masked_array(x,mask=np.isnan(y)).compressed() #ignore Nans
ym = np.ma.masked_array(y,mask=np.isnan(y)).compressed() #ignore Nans
from scipy.stats import linregress
linregress(xm, ym).slope

循环此计算并创建新df的有效方法是什么? 提前感谢...

0 个答案:

没有答案