Pandas 在数据帧中使用公式的有效方法
我正在尝试根据公式向数据帧添加列。我认为我目前的解决方案不是很有效率。所以我在寻找更快的选择 我有一张三栏的桌子Pandas 在数据帧中使用公式的有效方法,pandas,Pandas,我正在尝试根据公式向数据帧添加列。我认为我目前的解决方案不是很有效率。所以我在寻找更快的选择 我有一张三栏的桌子 如何提高公式步骤的效率 在我看来,这就像一个分组操作。也就是说,在每个“段”组中,您希望对该组应用一些操作 这里有一种方法可以执行上面的计算,使用分组方式和每组中的一些累积总和: import numpy as np def cumulate(group): cuml = 0.5 * np.cumsum(group) return cuml + cuml.shift
如何提高公式步骤的效率 在我看来,这就像一个分组操作。也就是说,在每个“段”组中,您希望对该组应用一些操作 这里有一种方法可以执行上面的计算,使用分组方式和每组中的一些累积总和:
import numpy as np
def cumulate(group):
cuml = 0.5 * np.cumsum(group)
return cuml + cuml.shift(1).fillna(0)
df['cumseglen'] = df.groupby('seg')['len'].apply(cumulate)
print(df)
结果是:
seg reach len cumseglen
0 1 1 20.0 10.0
1 1 2 50.0 45.0
2 1 3 30.0 85.0
3 2 1 30.0 15.0
4 2 2 40.0 50.0
5 2 3 30.0 85.0
从算法上讲,这与您所写的不完全相同,但假设“reach”列从“seg”列所指示的每个新段开头的1开始,这应该可以工作。谢谢!这是有道理的。
seg reach len cumseglen
0 1 1 20.0 10.0
1 1 2 50.0 45.0
2 1 3 30.0 85.0
3 2 1 30.0 15.0
4 2 2 40.0 50.0
5 2 3 30.0 85.0