我在绘制具有pandas
的{{1}}数据框时遇到问题。
我的数据有空白,我想实现以下目标:
PeriodIndex
通过用yearly = pd.DataFrame({'avSpeed': [50, 40, 20, 16]}, index=pd.PeriodIndex(['2014', '2015', '2018', '2019'], freq='A'))
avSpeed
2014 50
2015 40
2018 20
2019 16
填充间隙(通过以不变的频率重新采样)使数据帧无间隙:
NaN
用yearly2 = yearly.resample('A').mean()
avSpeed
2014 50.0
2015 40.0
2016 NaN
2017 NaN
2018 20.0
2019 16.0
绘制此图:
steps-post
还缺少什么:
无需对数据进行上采样或什至用plt.figure()
yearly2['avSpeed'].plot(color='red', drawstyle='steps-post')
填补空白!我可以像这样将数据绘制为NaN
:
hlines
非常感谢@piRSquared向我指出正确的方向。
答案 0 :(得分:0)
由于这只是您遇到问题的最后一个期间,只需添加一个新的期间(偏移量为nan)即可解决您的问题:
yearly2.loc[yearly2.index[-1] + pd.offsets.YearEnd(1), :] = np.nan
用pd.offset
指定YearEnd
将保留您的PeriodIndex
频率,即用A-DEC
重采样/创建PeriodIndex
时的freq='A'
频率。对于其他周期频率,当然应该使用其他偏移量。
答案 1 :(得分:0)