小编Wil*_*ant的帖子

在熊猫布尔比较中保持NaN值

我在熊猫数据框中有两个布尔列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来显示数据丢失。

有没有办法做到这一点?

python boolean missing-data pandas

5
推荐指数
2
解决办法
2462
查看次数

更改后在Jupyter中绘制维恩图(matplotlib-venn)

通过遵循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)

但我真的在黑暗中四处感受.我觉得我遗漏了一些非常基本的东西%matplotlibmatplotlib情节功能,但我还没能在网上找到答案.

如何在Jupyter中再次绘制这个数字?

python plot matplotlib jupyter matplotlib-venn

1
推荐指数
1
解决办法
1446
查看次数