相对地将python pandas列递减至另一列

前端之家收集整理的这篇文章主要介绍了相对地将python pandas列递减至另一列 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个结构,其中B列包含A列值的相同出现次数.

  1. df = pd.DataFrame(dict(A=list('aaabbcccc'),B=list('333224444')))
  2. df
  3. # A B
  4. # 0 a 3
  5. # 1 a 3
  6. # 2 a 3
  7. # 3 b 2
  8. # 4 b 2
  9. # 5 c 4
  10. # 6 c 4
  11. # 7 c 4
  12. # 8 c 4

我正在寻找一种添加C列的优雅方法,即每行减B的值.

  1. res
  2. # A B C
  3. # 0 a 3 2
  4. # 1 a 3 1
  5. # 2 a 3 0
  6. # 3 b 2 1
  7. # 4 b 2 0
  8. # 5 c 4 3
  9. # 6 c 4 2
  10. # 7 c 4 1
  11. # 8 c 4 0
最佳答案
使用@ALollz建议的cumcount(ascending = False):

  1. df.groupby('B').cumcount(ascending=False)
  2. 0 2
  3. 1 1
  4. 2 0
  5. 3 1
  6. 4 0
  7. 5 3
  8. 6 2
  9. 7 1
  10. 8 0
  11. dtype: int64

猜你在找的Python相关文章