Extract Month from Date in Python

I have a column of dates in the format 2010-01-31. I can extract the year using

#extracting year
year = df["date"].values
year = [my_str.split("-")[0] for my_str in year]
df["year"] = year

I'm trying to get the month, but I don't understand how to get it on the second split.

1

4 Answers

import datetime

a = '2010-01-31'

datee = datetime.datetime.strptime(a, "%Y-%m-%d")


datee.month
Out[9]: 1

datee.year
Out[10]: 2010

datee.day
Out[11]: 31
4

Alternate solution

Create a column that will store the month:

data['month'] = data['date'].dt.month

Create a column that will store the year:

data['year'] = data['date'].dt.year
1
>>> a='2010-01-31'
>>> a.split('-')
['2010', '01', '31']
>>> year,month,date=a.split('-')
>>> year
'2010'
>>> month
'01'
>>> date
'31'
2

if you use datetime, you can simply add .month at the end of the datetime method

>>> from datetime import datetime, date, time, timedelta, timezone
>>> datetime.now()
datetime.datetime(2022, 1, 3, 11, 33, 16, 609052)
>>> datetime.now().date()
datetime.date(2022, 1, 3)
>>> datetime.now().date().month
1
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Sarah Jenkins

Sarah Jenkins

Senior Technology Editor & AI Specialist

Sarah Jenkins is a veteran tech journalist with over 12 years of experience covering artificial intelligence, mobile innovations, and digital ethics. Her insights have appeared in leading technology publications worldwide.

Share this article
Twitter Facebook Pinterest