首页 > 解决方案 > Pandas - 根据在其他列上完成的条件数学创建新列

问题描述

假设我有一个包含以下内容的数据框

Col A|Col B|Col C
A     1     20
A     2     30
A     3     40
B     1     10
B     2     30

我想添加一个 col D,它将 Col C 中具有相同 Col A 值但其 Col B val 低于自身的所有值相加。所以结果是

    Col A|Col B|Col C|Col D
     A     1     20   20
     A     2     30   50
     A     3     40   90
     B     1     10   10
     B     2     30   40

谢谢你!

标签: pythonpandas

解决方案


你可以试试这个:

df = pd.DataFrame([["A",1,20],
["A",4,30],
["A",3,40],
["B",1,10],
["B",2,30]], columns =  ["Col A","Col B","Col C"])

df = df.sort_values(['Col A','Col B']).groupby('Col A')['Col C'].cumsum()

推荐阅读