gpt4 book ai didi

python - 如何计算从右边开始具有零值的连续列数,直到出现第一个非零元素

转载 作者:太空狗 更新时间:2023-10-30 00:31:10 26 4
gpt4 key购买 nike

假设我有以下数据框:

   C1 C2 C3 C4  
0 1 2 3 0
1 4 0 0 0
2 0 0 0 3
3 0 3 0 0

然后我想添加另一列,以便它显示从右侧连续出现的零值列的数量。新列将是:

  Cnew  
0 1
1 3
2 0
3 2

最佳答案

您可以使用:

  • 反向排序 iloc[::-1]
  • 获取cumsum每行 (axis=1)
  • 检查eq得到 sumTrue

df['new'] = df.iloc[:,::-1].cumsum(axis=1).eq(0).sum(axis=1)
print (df)
C1 C2 C3 C4 new
0 1 2 3 0 1
1 4 0 0 0 3
2 0 0 0 3 0
3 0 3 0 0 2
print (df.iloc[:,::-1])
C4 C3 C2 C1
0 0 3 2 1
1 0 0 0 4
2 3 0 0 0
3 0 0 3 0


print (df.iloc[:,::-1].cumsum(axis=1))
C4 C3 C2 C1
0 0 3 5 6
1 0 0 0 4
2 3 3 3 3
3 0 0 3 3

print (df.iloc[:,::-1].cumsum(axis=1).eq(0))
C4 C3 C2 C1
0 True False False False
1 True True True False
2 False False False False
3 True True False False

关于python - 如何计算从右边开始具有零值的连续列数,直到出现第一个非零元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45261479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com