1
votes

I am using pandas and I want to make a time series plot. I have this dataframe, and I want to plot the date on the x-axis with the number of units on the y-axis. I am assuming I need to convert my date object to a datetime before I can make this plot.

df1_99.dtypes

 date            object
 store_nbr        int64
 units            int64
 tavg             int64
 preciptotal    float64
 dtype: object


df1_99
        date        store_nbr      units        tavg    preciptotal
 101885 2014-10-13       1          2            49       0.00
 101996 2014-10-14       1          1            67       0.00
 102107 2014-10-15       1          0            70       0.00
 102218 2014-10-16       1          0            67       0.87
 102329 2014-10-17       1          3            65       0.01
1
Is your date a string and just the '2014-10-13' entries? You can convert using to_datetime e.g. df['date'] = pd.to_datetime(df['date'])EdChum
Ok yes, that was very easy. I plot with ' df1_99.plot(x='date', y='units') '. I got the plot I wanted. Do you know how to easily change the scale on the x-axis. I have been reading documentation and haven't been able to figure this out.Hound
Should I post as an answer?EdChum

1 Answers

0
votes

As your dates are strings you can use to_datetime to convert to datetime objects:

In [4]:

df['date'] = pd.to_datetime(df['date'])
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 101885 to 102329
Data columns (total 5 columns):
date           5 non-null datetime64[ns]
store_nbr      5 non-null int64
units          5 non-null int64
tavg           5 non-null int64
preciptotal    5 non-null float64
dtypes: datetime64[ns](1), float64(1), int64(3)
memory usage: 240.0 bytes

You can then plot this:

df.plot(x='date', y='units')

enter image description here