什么是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, 2, 1], "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

尽管它工作得很好,但我很确定还有一种更像蟒蛇的方法。我所说的"蟒蛇"是指使用本机的、简洁的pandas功能,并且不循环通过列/行。例如,在SPSS中有一个简单的count命令,因此关于这个objsourcedf,这一行将是:

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

遗憾的是,作为Python和pandas的初学者,我什么都找不到,所以我想问你是否有更简单的方法来获取事件?

我希望这符合"Pythonic":

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

最新更新