KeyError when plotting a sliced pandas dataframe with datetimes
HYRY explained why you get the KeyError. To plot with slices using matplotlib you can do:
In [157]: plot(test['x'][5:10].values)
Out[157]: [<matplotlib.lines.Line2D at 0xc38348c>]
In [158]: plot(test['x'][5:10].reset_index(drop=True))
Out[158]: [<matplotlib.lines.Line2D at 0xc37e3cc>]
x, y plotting in one go with 0.7.3
In [161]: test[5:10].set_index('x')['y'].plot()
Out[161]: <matplotlib.axes.AxesSubplot at 0xc48b1cc>
Instead of calling plot(test["x"][5:10])
, you can call the plot method of Series object:
test["x"][5:10].plot()
The reason: test["x"][5:10]
is a Series object with integer index from 5 to 10. plot()
try to get index 0 of it, that will cause error.
I encountered this error with pd.groupby
in Pandas 0.14.0 and solved it with df = df[df['col']!= 0].reset_index()