从pandas图中掩盖零值

时间:2016-04-18 03:58:10

标签: python pandas

我有一个零值的pandas数据框,我的情节如下:

enter image description here

我想在图中屏蔽零值。以下是我用来绘图的内容:

ro_list = pd.DataFrame({'Annual min' : annual_ro_min, 'Annual max': annual_ro_max})
ro_list.plot.line(grid=True, ax=ax1, ylim=(0,200), figsize=(5,5))
plt.show()

任何建议都会令人感激。

2 个答案:

答案 0 :(得分:1)

绘图引擎接受遗漏的np.nan值。 0 s正常绘制。

import pandas as pd
import numpy as np

df = pd.DataFrame([{
    'A' : .5,
    'B' : .5
},{
    'A' : 1,
    'B' : 2
},{
    'A' : 2,
    'B' : 0
},{
    'A' : 1,
    'B' : 2
},{
    'A' : 0,
    'B' : 1
}])

df.replace(0, np.nan).plot()

replacement

如果要连接缺失数据周围的线条,可以使用

df[np.logical_and(df.A != 0, df.B != 0)].plot()

enter image description here

df[df.A != 0].plot()
df[df.B != 0].plot()

enter image description here

请注意,在最后一个图中,浅蓝色线连接13

答案 1 :(得分:0)

你可以使用管道

(ro_list.query(' "Annual min"!=0 and "Annual max"!=0 ')
        .plot.line()
)