【发布时间】:2021-08-12 11:41:07
【问题描述】:
我正在编写一个生成报告的应用程序。输出的一部分显示两列之间有多少匹配项(匹配 = True,不匹配 = False)。为了做到这一点,我使用df.column.value_counts() 输出是
False 2
True 1
Name: column, dtype: int64
所以我想在报告中显示类似的结果
# This is a simplify example
print(" Position with same genotype: ", df.column.value_counts()[1])
print(" Position with different genotype: ", df.column.value_counts()[0])
我注意到这个输出的顺序会根据表中首先找到的 False 或 True 发生变化(我想我可以用 sort 解决这个问题)。但是,我想到的另一个更大的问题是,如果在表中没有找到 False 或非 True,则输出为:
# For example not Falses
True 3
Name: column, dtype: int64
这是我预料到的:
# For example not Falses
True 3
False 0
Name: column, dtype: int64
如何解决此问题以避免将来出现错误?这与发生的情况完全不同,它至少会有一个错误或正确的结果,但我想确保不会发生错误,因为此应用程序将使用不同的样本多次运行,因此理论上这种情况可能会发生。
【问题讨论】:
-
“无 False 或非 True”值是什么意思,df 中出现的其他选项是什么?
-
@flyinthelotion 我认为他的意思是如果只找到真值,他可以通过检查列表的长度来解决。如果它只有 1,那么您缺少其中一个值并且可以处理
-
@flyinthelotion 应用程序运行时,可能会出现三种情况:首先在列中找到 True 和 False,第二次仅找到 True,第三次仅找到 False。 @Sean Powell 谢谢,这可能是一种解决方案,问题是找到一种方法,让我知道能够返回的缺失值是什么,例如 True = 0