python pandas convert index to datetime

python pandas convert index to datetime

It should work as expected. Try to run the following example.

import pandas as pd
import io

data = value          
2015-09-25 00:46    71.925000
2015-09-25 00:47    71.625000
2015-09-25 00:48    71.333333
2015-09-25 00:49    64.571429
2015-09-25 00:50    72.285714

df = pd.read_table(io.StringIO(data), delim_whitespace=True)

# Converting the index as date
df.index = pd.to_datetime(df.index)

# Extracting hour & minute
df[A] = df.index.hour
df[B] = df.index.minute
df

#                          value  A   B
# 2015-09-25 00:46:00  71.925000  0  46
# 2015-09-25 00:47:00  71.625000  0  47
# 2015-09-25 00:48:00  71.333333  0  48
# 2015-09-25 00:49:00  64.571429  0  49
# 2015-09-25 00:50:00  72.285714  0  50

You could explicitly create a DatetimeIndex when initializing the dataframe. Assuming your data is in string format

data = [
    (2015-09-25 00:46, 71.925000),
    (2015-09-25 00:47, 71.625000),
    (2015-09-25 00:48, 71.333333),
    (2015-09-25 00:49, 64.571429),
    (2015-09-25 00:50, 72.285714),
]

index, values = zip(*data)

frame = pd.DataFrame({
    values: values
}, index=pd.DatetimeIndex(index))

print(frame.index.minute)

python pandas convert index to datetime

I just give other option for this question – you need to use .dt in your code:

import pandas as pd

df.index = pd.to_datetime(df.index)

#for get year
df.index.dt.year

#for get month
df.index.dt.month

#for get day
df.index.dt.day

#for get hour
df.index.dt.hour

#for get minute
df.index.dt.minute

Leave a Reply

Your email address will not be published. Required fields are marked *