我在熊猫数据框中有两个布尔列A和B,每个列都有缺失的数据(由NaN表示)。我想要在两列上执行AND操作,但是如果原始列中的任何一个为NaN,我希望生成的布尔列为NaN。我有下表:
A B
0 True True
1 True False
2 False True
3 True NaN
4 NaN NaN
5 NaN False
Run Code Online (Sandbox Code Playgroud)
现在,当df.A & df.B我想要时:
0 True
1 False
2 False
3 NaN
4 NaN
5 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
但是我得到了:
0 True
1 False
2 False
3 True
4 True
5 False
dtype: bool
Run Code Online (Sandbox Code Playgroud)
此行为np.bool(np.nan) & np.bool(False)与其排列是一致的,但是我真正想要的是一列,该字段告诉我确定每一行对于两者而言是否为True,或者对于某些情况而言一定不能为True。如果我都知道它为True,则结果应该为True,如果我知道至少一个结果为False,则结果应该为False,否则我需要NaN来显示数据丢失。
有没有办法做到这一点?
通过遵循matplotlib-venn README中的命令,我可以在示例中生成初始图.但是,当我更改维恩图(标签文本等)的设置时,我无法弄清楚如何重新绘制图形.运行:
%matplotlib inline
from matplotlib_venn import venn3
v = venn3([set1, set2, set3], ('Set1', 'Set2', 'Set3'))
Run Code Online (Sandbox Code Playgroud)
给出维恩图内联.然后我继续更改标签
v.get_label_by_id('100').set_text('Arbitrary1')
Run Code Online (Sandbox Code Playgroud)
但我不能重新绘制这个数字.我试过了
# from matplotlib import pyplot as plt
plt.plot()
plt.plot(v)
v
v()
Run Code Online (Sandbox Code Playgroud)
但我真的在黑暗中四处感受.我觉得我遗漏了一些非常基本的东西%matplotlib或matplotlib情节功能,但我还没能在网上找到答案.
如何在Jupyter中再次绘制这个数字?