python - 利用前一行的 Pandas 函数计算

标签 python pandas

具有一个输入列的数据框。我想添加另一个 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/

相关文章:

python - 将工作日名称字符串转换为日期时间

python - 将数据框列名称从字符串格式更改为日期时间

python - 如何在 py.test 中使用多核?

python - 在 Python 中如何调用不同用户下的子进程?

python - 如何使用 lxml.html text_content() 或等效项将 <br> 保留为换行符?

Python-在 panda 数据框之间添加行

python - 解析 C++ 预处理器 #if 语句

python - 在 OS X Lion 上安装 pygame 的最佳方法是什么?

python - 在 Pandas 中转换列并对其执行函数

python-3.x - 我如何从函数返回数据框