Python | Working with date and time using Pandas
While working with data, encountering time series data is very usual. Pandas is a very useful tool while working with time series data.
Pandas provide a different set of tools using which we can perform all the necessary tasks on date-time data. Let’s try to understand with the examples discussed below.
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course
Code #1: Create a dates dataframe
import pandas as pd # Create dates dataframe with frequency data = pd.date_range('1/1/2011', periods = 10, freq ='H') data |
Output:
Code #2: Create range of dates and show basic features
# Create date and time with dataframedata = pd.date_range('1/1/2011', periods = 10, freq ='H') x = datetime.now()x.month, x.year |
Output:
(9, 2018)
Datetime features can be divided into two categories.The first one time moments in a period and second the time passed since a particular period. These features can be very useful to understand the patterns in the data.
Divide a given date into features –
pandas.Series.dt.year returns the year of the date time.
pandas.Series.dt.month returns the month of the date time.
pandas.Series.dt.day returns the day of the date time.
pandas.Series.dt.hour returns the hour of the date time.
pandas.Series.dt.minute returns the minute of the date time.
Refer all datatime properties from here.
Code #3: Break data and time into separate features
# Create date and time with dataframerng = pd.DataFrame()rng['date'] = pd.date_range('1/1/2011', periods = 72, freq ='H') # Print the dates in dd-mm-yy formatrng[:5] # Create features for year, month, day, hour, and minuterng['year'] = rng['date'].dt.yearrng['month'] = rng['date'].dt.monthrng['day'] = rng['date'].dt.dayrng['hour'] = rng['date'].dt.hourrng['minute'] = rng['date'].dt.minute # Print the dates divided into featuresrng.head(3) |
Output:
Code #4: To get the present time, use Timestamp.now() and then convert timestamp to datetime and directly access year, month or day.
# Input present datetime using Timestampt = pandas.tslib.Timestamp.now()t |
Timestamp('2018-09-18 17:18:49.101496')
# Convert timestamp to datetimet.to_datetime() |
datetime.datetime(2018, 9, 18, 17, 18, 49, 101496)
# Directly access and print the featurest.yeart.montht.dayt.hourt.minutet.second |
2018 8 25 15 53
Let’s analyze this problem on a real dataset uforeports.
Output:
# Convert the Time column to datatime formatdf['Time'] = pd.to_datetime(df.Time) df.head() |

# shows the type of each column datadf.dtypes |
City object Colors Reported object Shape Reported object State object Time datetime64[ns] dtype: object
# Get hour detail from time datadf.Time.dt.hour.head() |
0 22 1 20 2 14 3 13 4 19 Name: Time, dtype: int64
# Get name of each datedf.Time.dt.weekday_name.head() |
0 Sunday 1 Monday 2 Sunday 3 Monday 4 Tuesday Name: Time, dtype: object
# Get ordinal day of the yeardf.Time.dt.dayofyear.head() |
0 152 1 181 2 46 3 152 4 108 Name: Time, dtype: int64

