如何解决用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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。