用pythonic的方式熊猫的本机函数来计算案例中某个值的出现相当于SPSS COUNT个?

问题描述

我需要在每种情况下的一系列列中计算某个值的出现次数(假设为 3 )。为此,我编写了如下脚本:

import pandas as pd
import numpy as np

objsourcedf = pd.DataFrame({"a": [1,2,2],"b": [3,1,1],"c": [3,"d": [4,3,8]})
print(objsourcedf)

objauxdf = objsourcedf.transpose()
objauxdf.loc["counts"] = np.sum(objauxdf == 3)  

objsourcedf = objsourcedf.assign(counts=list(objauxdf.loc["counts"]))
print(objsourcedf)

第一个print是:

   a  b  c  d
0  1  3  3  4
1  2  1  2  3
2  2  1  1  8

第二:

   a  b  c  d  counts
0  1  3  3  4       2
1  2  1  2  3       1
2  2  1  1  8       0

即使它工作正常,我也可以肯定有更多的Python方式可以做到这一点。 “ pythonic”是指使用简洁的本机pandas功能,并且不会在列/行之间循环。例如,在SPSS中,有一个简单的count命令,因此对于此objsourcedf,此行应为:

count counts = a b c d (3).
execute.

可悲的是,作为Python和pandas的初学者,我什么都找不到,所以我问你是否有更简单的方法来发生事件?

解决方法

我希望这符合“ Pythonic”的要求:

objsourcedf['count'] = objsourcedf.eq(3).sum(axis=1)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...