我有一个表示时间序列概率的数据框。列中的每个值'单个'表示该时间段内该事件的概率(每行代表一个时间段)。列中的每个值'累积'表示该事件发生在该时间段之前的每个时间段的概率(即,从0时刻到现在,单个'中的每个值的乘积)。
数据框的简化版本如下所示:
Single Cumulative
0 0.990000 1.000000
1 0.980000 0.990000
2 0.970000 0.970200
3 0.960000 0.941094
4 0.950000 0.903450
5 0.940000 0.858278
6 0.930000 0.806781
7 0.920000 0.750306
8 0.910000 0.690282
9 0.900000 0.628157
10 0.890000 0.565341
为了计算“累积”'基于' Single'的列我正在循环遍历数据框:
for index, row in df.iterrows():
df['Cumulative'][index] = df['Single'][:index].prod()
实际上,有很多数据和循环是对性能的拖累,是否有可能在没有循环的情况下实现这一点?
我试图找到一种方法来对此计算进行矢量化甚至使用pandas.DataFrame.apply函数,但我不相信我能够引用当前的索引值那些方法。