how set column as date index?

Question:

My data sets looks like:

Date        Value
1/1/1988    0.62
1/2/1988    0.64
1/3/1988    0.65
1/4/1988    0.66
1/5/1988    0.67
1/6/1988    0.66
1/7/1988    0.64
1/8/1988    0.66
1/9/1988    0.65
1/10/1988   0.65
1/11/1988   0.64
1/12/1988   0.66
1/13/1988   0.67
1/14/1988   0.66
1/15/1988   0.65
1/16/1988   0.64
1/17/1988   0.62
1/18/1988   0.64
1/19/1988   0.62
1/20/1988   0.62
1/21/1988   0.64
1/22/1988   0.62
1/23/1988   0.60

I used this code to read this data:

df.set_index(df['Date'], drop=False, append=False, inplace=False, verify_integrity=False).drop('Date', 1)

But the problem is the index is not in date format. So the question is how to set this column as date index?

Asked By: bikuser

||

Answers:

Your question lacked a proper explanation, but you can do the following:

In [75]:
# convert to datetime
df['Date'] = pd.to_datetime(df['Date'])
df.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 23 entries, 0 to 22
Data columns (total 2 columns):
Date     23 non-null datetime64[ns]
Value    23 non-null float64
dtypes: datetime64[ns](1), float64(1)
memory usage: 448.0 bytes

In [76]:
# set the index
df.set_index('Date', inplace=True)
df.info()

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 23 entries, 1988-01-01 to 1988-01-23
Data columns (total 1 columns):
Value    23 non-null float64
dtypes: float64(1)
memory usage: 368.0 bytes

So here to_datetime will convert date strings to datetime dtype, set_index with param inplace=True is all you need,

Answered By: EdChum

If you’re loading data from a file, use parse_dates and index_col at load time, e.g.:

df = pd.read_csv('data.csv', parse_dates=['Date'], index_col=['Date'])

#             Value
# Date             
# 1988-01-01   0.62
# 1988-01-02   0.64
# ...
# 1988-01-23   0.60
df.index

# DatetimeIndex(['1988-01-01', '1988-01-02', ..., '1988-01-23'],
#               dtype='datetime64[ns]', name='Date', freq=None)

parse_dates is supported by most of the read_* methods:

Answered By: tdy
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.