gpt4 book ai didi

python - 如何使用前一行值以及同一行中其他列中的值来计算 Pandas 中列的值

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:42 32 4
gpt4 key购买 nike

我有一个数据框df:

import pandas as pd    
df = pd.DataFrame({'A': [1, 1, 1,2,2,2,2],
'B': [10, 0, 0,5,0,0,0],
'C': [1,1,2,2,3,3,3],
'D': [2,3,4,5,2,3,4]})

看起来像:

   A   B  C  D
0 1 10 1 2
1 1 0 1 3
2 1 0 2 4
3 2 5 2 5
4 2 0 3 2
5 2 0 3 3
6 2 0 3 4

我想计算 B 列中的值,仅针对 A 列中表示的所有组(根据示例数据为 1,2)为 0 的那些位置.

B 的值 = 前一条记录中 B 列的值 + 同一记录中列 C 的值 + 列 D 中的值同一条记录。

我的预期输出是:

   A   B  C  D
0 1 10 1 2
1 1 14 1 3
2 1 20 2 4
3 2 5 2 5
4 2 10 3 2
5 2 16 3 3
6 2 23 3 4

我怎样才能在 pandas 中做到这一点?

最佳答案

应该这样做:

def f(g):
g.B = (g.B.shift() + g.C + g.D).cumsum()
return g

df.B.replace(0, df.groupby('A').apply(f).B)

结果是:

   A   B  C  D
0 1 10 1 2
1 1 14 1 3
2 1 20 2 4
3 2 5 2 5
4 2 10 3 2
5 2 16 3 3
6 2 23 3 4

关于python - 如何使用前一行值以及同一行中其他列中的值来计算 Pandas 中列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56079886/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com