具有一个输入列的数据框。我想添加另一个 Out 列,将输入行乘以 0.5 +(前一行 Out 值 + 1)。我尝试过转变,但认为我错过了一些基本的东西。
输入数据框:
df
Out[11]:
Input
0 10
1 20
2 30
3 20
4 30
5 0
6 10
7 20
输出数据帧:
df
Out[11]:
Input Out
0 10 5
1 20 16
2 30 32
3 20 43
4 30 59
5 0 60
6 10 66
7 20 77
最佳答案
这里有一个解决这个问题的小技巧:
import pandas as pd
df = pd.DataFrame({'input':[10,20,30,20,30,0,10,20]})
print(df)
输入数据框:
input
0 10
1 20
2 30
3 20
4 30
5 0
6 10
7 20
在这种情况下,您真正要做的是运行累积和的变体,我们可以将其建模如下:
df['out'] = ((df['input']/2).cumsum()) + (df['input'].notnull()).cumsum().add(-1)
输出结果:
input out
0 10 5.0
1 20 16.0
2 30 32.0
3 20 43.0
4 30 59.0
5 0 60.0
6 10 66.0
7 20 77.0
关于python - 利用前一行的 Pandas 函数计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43429722/