加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-17 17:36:58 所属栏目:Python 来源:网络整理
导读:我有一个结构,其中B列包含A列值的相同出现次数. df = pd.DataFrame(dict(A=list('aaabbcccc'),B=list('333224444')))df# A B# 0 a 3# 1 a 3# 2 a 3# 3 b 2# 4 b 2# 5 c 4# 6 c 4# 7 c 4# 8 c 4 我正在寻找一种添加C列的优雅方法,即每行减B的值. res# A B C#

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

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

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

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

df.groupby('B').cumcount(ascending=False)

0    2
1    1
2    0
3    1
4    0
5    3
6    2
7    1
8    0
dtype: int64

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读