Python 3.x 沿第n行(或整数倍)重新采样

Python 3.x 沿第n行(或整数倍)重新采样,python-3.x,pandas,resampling,Python 3.x,Pandas,Resampling,我希望对一些价格数据流进行重新采样,以便仅为每第n行计算两列的乘积 例如,在我下面的数据中;我希望(在新列中)计算signal和PrxDiff的值,前提是索引是6的倍数(或其他整数) 我尝试的是生成一个“余数”值,然后使用一个if循环(对于每一行),检查cnt==0 dataT['cnt'] = dataT.index % 6 for row in dataT.index: if dataT.cnt[row] == 0: dataT.cnt[row] = dataT.Pr

我希望对一些价格数据流进行重新采样,以便仅为每第n行计算两列的乘积

例如,在我下面的数据中;我希望(在新列中)计算signal和PrxDiff的值,前提是索引是6的倍数(或其他整数)

我尝试的是生成一个“余数”值,然后使用一个if循环(对于每一行),检查cnt==0

dataT['cnt'] = dataT.index % 6
for row in dataT.index:
    if dataT.cnt[row] == 0:
        dataT.cnt[row] = dataT.PrxDiff[row] * dataT.signal[row]
    else:
        dataT.cnt[row] == 0

dataT
但是有两个问题,列cnt变成了一个整数(并且原始值似乎没有设置为零),并且计算似乎要花很长时间(出于某种原因)


逻辑的基础
np.where

np.where((df.ind%6)==0,0,df.PrxDiff*df.signal)
Out[268]: 
array([  0.      ,  -7.52587 ,  -7.52304 ,  -3.76152 , -15.04608 ,
         3.76152 ,   0.      ,   0.      ,  -0.      , -11.280315,
       -18.800525,  -7.52021 ,   0.      ])

#df['cnt'] = np.where((df.ind%6)==0,0,df.PrxDiff*df.signal)
   ind  signal  oldnal  time                price   PrxDiff     cnt
    0   -1      4       2018-08-14 08:00:06 2.6575  7.525870    -7.0
    1   -1      3       2018-08-14 08:00:16 2.6575  7.525870    1.0
    2   -2      2       2018-08-14 08:00:26 2.6585  3.761520    2.0
    3   -1      1       2018-08-14 08:00:36 2.6585  3.761520    3.0
    4   -4      1       2018-08-14 08:00:46 2.6585  3.761520    4.0
    5   1       0       2018-08-14 08:00:56 2.6585  3.761520    5.0
    6   -3      3       2018-08-14 08:01:06 2.6595  0.000000    0.0
    7   0       2       2018-08-14 08:01:16 2.6595  0.000000    1.0
    8   -3      3       2018-08-14 08:01:26 2.6595  0.000000    2.0
    9   -3      2       2018-08-14 08:01:36 2.6595  3.760105    3.0
    10  -5      1       2018-08-14 08:01:46 2.6595  3.760105    4.0
    11  -2      0       2018-08-14 08:01:56 2.6595  3.760105    5.0
    12  -3      1       2018-08-14 08:02:06 2.6595  3.760105    -11.0
np.where((df.ind%6)==0,0,df.PrxDiff*df.signal)
Out[268]: 
array([  0.      ,  -7.52587 ,  -7.52304 ,  -3.76152 , -15.04608 ,
         3.76152 ,   0.      ,   0.      ,  -0.      , -11.280315,
       -18.800525,  -7.52021 ,   0.      ])

#df['cnt'] = np.where((df.ind%6)==0,0,df.PrxDiff*df.signal)