微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有一个结构,其中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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐