Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何编写Python代码,使用groupby为forward 2句点执行cumprod_Python 3.x - Fatal编程技术网

Python 3.x 如何编写Python代码,使用groupby为forward 2句点执行cumprod

Python 3.x 如何编写Python代码,使用groupby为forward 2句点执行cumprod,python-3.x,Python 3.x,我想用groupby(id)计算RET,它是两个时段(现在和下一个时段)的累积值 预期结果: 实际结果: 我使用的代码为后续2个期间而不是向前计算cumprod。您需要df.RET.shift(-1)您需要df.RET.shift(-1) df['RET'] = df.groupby('id')['trt1m1'].rolling(2,min_periods=2).apply(lambda x:x.prod()).reset_index(0,drop=True) id datadate

我想用
groupby(id)
计算RET,它是两个时段(现在和下一个时段)的累积值

预期结果: 实际结果: 我使用的代码为后续2个期间而不是向前计算cumprod。

您需要
df.RET.shift(-1)
您需要
df.RET.shift(-1)
df['RET'] = df.groupby('id')['trt1m1'].rolling(2,min_periods=2).apply(lambda x:x.prod()).reset_index(0,drop=True)
id  datadate    trt1m1  RET
1   20051231    1   2
1   20060131    2   6
1   20060228    3   12
1   20060331    4   16
1   20060430    4   20
1   20060531    5   Nan
2   20061031    10  110
2   20061130    11  165
2   20061231    15  300
2   20070131    20  420
2   20070228    21  Nan
id  datadate    trt1m1  RET
1   20051231    1   Nan
1   20060131    2   2
1   20060228    3   6
1   20060331    4   12
1   20060430    4   16
1   20060531    5   20
2   20061031    10  Nan
2   20061130    11  110
2   20061231    15  165
2   20070131    20  300
2   20070228    21  420