Python 3.x Python对上一行进行条件求和和和减法

Python 3.x Python对上一行进行条件求和和和减法,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,我是新来的,我需要一些帮助。 我需要帮助创建一个新列,从中可以得到另一列的总和+此计算行的前一行 这是我的例子: df = pd.DataFrame({ 'column0': ['x', 'x', 'y', 'x', 'y', 'y', 'x'], 'column1': [50, 100, 30, 0, 30, 80, 0], 'column2': [0, 0, 0, 10, 0, 0, 30], }) print(df) column0 column1 column2 0

我是新来的,我需要一些帮助。 我需要帮助创建一个新列,从中可以得到另一列的总和+此计算行的前一行

这是我的例子:

df = pd.DataFrame({
'column0': ['x', 'x', 'y', 'x', 'y', 'y', 'x'],
'column1': [50, 100, 30, 0, 30, 80, 0], 
'column2': [0, 0, 0, 10, 0, 0, 30],
})
print(df)
    column0  column1  column2
 0       x       50        0
 1       x      100        0
 2       y       30        0
 3       x        0       10
 4       y       30        0
 5       y       80        0
 6       x        0       30
我已使用loc过滤此数据帧,如下所示:

 df = df.loc[df['column0'] == 'x']
 df = df.reset_index(drop=True)
现在…当我尝试获取输出时,没有得到正确的结果:

df['Result'] = df['column1'] + df['column2']
df['Result'] = df['column1'] + df['column2'] + df['Result'].shift(1)

print(df)
   column0  column1  column2  Result
0       x       50        0     NaN
1       x      100        0   100.0
2       x        0       10    10.0
3       x        0       30    30.0
我只想要这个输出

   column0  column1  column2  Result
0       x       50        0     50
1       x      100        0   150.0
2       x        0       10   160.0
3       x        0       30   190.0
多谢各位

您可以使用计算列的累积和:

df = pd.DataFrame({
    'column1': [50, 100, 30, 0, 30, 80, 0], 
    'column2': [0, 0, 0, 10, 0, 0, 30],
})

df['column3'] = df['column1'].cumsum() - df['column2'].cumsum()
这导致:

    column1 column2 column3
0    50     0        50
1   100     0       150
2    30     0       180
3     0    10       170
4    30     0       200
5    80     0       280
6     0    30       250

不太清楚你在问什么。考虑添加一些示例输入/输出数据框,以便我们可以更清楚地跟踪。我添加了一个图像。谢谢,最好在代码/文本中添加数据帧,而不是图片。您可以通过df.head(5.to_dict()完成此操作,并将输出作为代码复制/粘贴到此处。如果你把你想要的输出作为代码/文本发布到你的问题中,这也很有帮助。这确实有助于回答你的问题。我把我的答案贴在下面。谢谢。下次我会这么做。这是我在这里的第一篇文章。祝您有个美好的一天。