我将以下熊猫数据框作为输入:df= pd.DataFrame({"C": [2,4,7,17,39], "D": [0,0,0,0,0]})
输出: C D0 2 01 4 02 7 03 17 04 39 0
我想对D列应用一个函数,使其采用当前C值并减去先前的C值,并将其添加至先前的D值。 D中的第一个元素必须为0。
例如对于第四行,列D的值为39-17 + 15 = 37
所需的输出如下所示: C D0 2 01 4 22 7 53 17 154 39 37
我可以使用遍历每一行并执行计算的for循环来获得所需的结果。我的实际数据帧是几千行,计算涉及几列。我想知道是否有一个更有效,更简单的例程,可以使用Apply或shift或类似的方法但不能使用for循环使用?
最佳答案
您可以对C列的差(当前-上一个)执行cumsum
:
df['D'] = df['C'].diff().fillna(0).cumsum()
df
# C D
#0 2 0.0
#1 4 2.0
#2 7 5.0
#3 17 15.0
#4 39 37.0
关于python - 使用Apply使用特定功能快速填充 Pandas 数据框的列吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43441974/