gpt4 book ai didi

python - 对于每一行,选择值不为 '0' 的所有实例(在任何/所有列中)

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:35 24 4
gpt4 key购买 nike

我有一个看起来像这样的 df:

   Col1    Col2   Col3    ColN
0 0 2 1
10 5 0 8
0 0 0 12

尝试获取每行的值不为零的所有次数的总和/平均值(然后将其添加为“总和/平均值”列),以获得输出:

   Col1    Col2   Col3    ColN    Sum
0 0 2 1 2
10 5 0 8 1
0 0 0 12 3

在 df 中,我记录了事件发生的次数。我试图获取平均出现次数或频率(或者我猜,连续某个值不为 0 的次数)。

有什么方法可以在整个数据帧范围内应用这个数据吗?我有大约 2000 行,并且一直在尝试使用 Counter,但已经设法获得仅观察到 1 行的某些内容的次数:(

或者也许我应该将所有非零数字转换为虚拟变量,但仍然不知道如何选择和求和?

最佳答案

正如亚图建议的那样,

df.ne(0).sum(1) 

完成这项工作。 (注意:当我用它来做 df['Sum'] = df.ne(0).sum(1) 时,我收到一条警告消息,但我不太明白其中的含义)

SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

实际上,我在想要的列中得到了几行带有零的行,它们仍然存在(不知道为什么),所以我也去删除此后带有零的任何行(这都非常丑陋,但不知道...... )

df = df[(df[['Sum']] != 0).all(axis=1)]

关于python - 对于每一行,选择值不为 '0' 的所有实例(在任何/所有列中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56833488/

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