Python 熊猫布尔系列赢得';t图

Python 熊猫布尔系列赢得';t图,python,arrays,pandas,plot,boolean,Python,Arrays,Pandas,Plot,Boolean,我是Python新手,我正在尝试绘制布尔数组。然而,我得到了一个错误,尽管其他人似乎在绘制布尔数组方面没有任何问题 对于数值数组,它可以按预期工作。因此,下面的代码工作得很好 import pandas as pd series_numeric = pd.Series([0,1,0]) series_numeric.plot() 但是,对于布尔数组,会发生错误。代码如下: import pandas as pd series_bool = pd.Series([False,True,False

我是Python新手,我正在尝试绘制布尔数组。然而,我得到了一个错误,尽管其他人似乎在绘制布尔数组方面没有任何问题

对于数值数组,它可以按预期工作。因此,下面的代码工作得很好

import pandas as pd
series_numeric = pd.Series([0,1,0])
series_numeric.plot()
但是,对于布尔数组,会发生错误。代码如下:

import pandas as pd
series_bool = pd.Series([False,True,False])
series_bool.plot()
它抛出以下错误:

TypeError: Empty 'DataFrame': no numeric data to plot
然而,这很奇怪,因为中的演讲者(1:45:48)在绘制布尔数组方面似乎没有任何问题


希望任何人都能帮忙

首先转换类型,然后按以下方式绘制:

series_bool.astype(float).plot()


另外,在您提到的视频中,讲师也在绘制真/假,因此这看起来像是Pandas对布尔值的处理方式发生了变化

这显然是由于处理数据的方式发生了变化。如果转到,则被视为数字的数据类型为
np.number,“datetime”,“datetimetz”,“timedelta”

如果我们返回到的几个版本,这行内容如下:

numeric_data = data._convert(datetime=True)._get_numeric_data()

这是随着
0.21.0

的发布而改变的,您使用的
pandas
版本是什么?可以用pandas
0.22.0
复制,这看起来像个错误这是我预期的错误。我可能在视频中错过了它,尽管我没有看到他在哪里绘制布尔值。您希望通过
series\u bool.plot()
生成的图形是什么样子的?我使用的是Pandas版本0.23.4。我有同样的问题。如果您想看到0和1,那么boolean不是您想要的类型。只需将
astype
float
int
一起使用即可。正如@Peyman所显示的那样。为简洁起见,您还可以
series\u bool.mul(1.plot()
numerical\u status=machine\u status=='OK'
返回布尔序列。您可以通过运行以下等效函数来检查这一点:
(pd.Series(['apple','apple','banana'])=='apple').plot()
。我的猜测是,布尔运算的处理方式已经发生了变化,从隐式转换为0和1,就像pythonic一样,转变为非数字类型。尝试在python控制台中键入
True+1
。@tobsecret对于布尔序列是正确的。然而,佩曼提出的建议是可行的。非常感谢@托比:你是对的!这似乎与熊猫对布尔运算的处理方式的改变有关!编辑答案以反映这一点!
numeric_data = data._convert(datetime=True)._get_numeric_data()