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()完成此操作,并将输出作为代码复制/粘贴到此处。如果你把你想要的输出作为代码/文本发布到你的问题中,这也很有帮助。这确实有助于回答你的问题。我把我的答案贴在下面。谢谢。下次我会这么做。这是我在这里的第一篇文章。祝您有个美好的一天。