Pandas NaN列在图中绘制为全0列
我在绘制一个切片的Pandas NaN列在图中绘制为全0列,pandas,Pandas,我在绘制一个切片的数据帧时遇到了一些问题,整个列都被NaN填充 为什么: pandas.DataFrame( dict( A=pandas.Series([np.NaN]*32), B=pd.Series(range(-1,32)) ) ).plot() 不同于: #Ugly fix pandas.DataFrame( dict( A=pandas.Series( [0] + [numpy.NaN]*32),
数据帧时遇到了一些问题,整个列都被NaN填充
为什么:
pandas.DataFrame(
dict(
A=pandas.Series([np.NaN]*32),
B=pd.Series(range(-1,32))
)
).plot()
不同于:
#Ugly fix
pandas.DataFrame(
dict(
A=pandas.Series( [0] + [numpy.NaN]*32),
B=pd.Series(range(-1,32))
)
).plot()
通过绘制一条0线,就像列中填充了零一样。
第一个代码不应该像:
pylab.plot(
range(0,33),
range(-1,32),
range(0,32),
[numpy.NaN]*32
)
而且还绘制了一系列充满NaN的作品,很好:
pandas.Series([numpy.NaN]*32).plot()
我错过了什么?是否有一种正确的方法来绘制包含所有NaN的列,还是它是一个bug?这看起来像是pandas
中的bug。查看源代码,在:
如果列仅包含NaN,则为空,值设置为np.zeros()
注意:我没有添加“IsThisRight?”注释:它在源代码中!(第5.0.8.1节)
我对此提出了一个问题:
empty = df[col].count() == 0
# is this right?
values = df[col].values if not empty else np.zeros(len(df))