我有一个名为result
的数据框:
find_a id find_b id
yes 0001 yes 0001
no 0002 yes 0002
no 0003 no 0003
yes 0004 no 0004
yes 0005 yes 0005
我有以下内容:
result.find_a.values==find_b.values
重新调整True / False数组:
array([ True, False, True, False, True])
如何以此为基础并获得True
的数量?如果我可以得到计数,则以后可以在列之间找到匹配记录的百分比,即。 find_a
与find_b
相匹配40%的时间。
此外,我不确定我是否正在冒险尝试numpy或pandas路线...
非常感谢您的帮助。
答案 0 :(得分:4)
除非您要处理大量数据,否则无论使用NumPy还是熊猫都没有关系。由于您使用的是熊猫,除非您另有需要,否则我建议您仅遵循基本原则。
要回答您的原始问题,您可以使用True
获取mean
值的百分比:
(df['find_a'] == df['find_b']).mean()
# 0.6
在哪里
df['find_a'] == df['find_b']
0 True
1 False
2 True
3 False
4 True
dtype: bool
答案 1 :(得分:0)
len(result[result.find_a == result.find_b])
np.mean(result.find_a == result.find_b)