我有这个结构,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
关于python - 相对于另一个递减python pandas列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54564779/