python - 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
谢谢你!
解决方案
你可以试试这个:
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()
推荐阅读
- arrays - Get value outside loop
- javascript - How to fix Ant javascript tags for M1 Mac?
- java - I am new to flutter app development. Got handover of the flutter project and tried to run, but getting Build Failed Exception by terminal command
- java - Android MPchart在滚动后获取视图的Y-Position
- apache-spark - 我可以在 Pyspark 中对 pair_rdd 进行 groupByKey 调用吗?
- django - DRF:没有模型的序列化程序验证
- javascript - 使用节点 js 创建一个 css 文件
- javascript - Node JS 会话错误:不推荐使用 express-session
- mysql - SQL有没有办法选择作为给定值开头的所有值?
- face-recognition - 地标检测与人脸识别