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.
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
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
>>> a='2010-01-31'
>>> a.split('-')
['2010', '01', '31']
>>> year,month,date=a.split('-')
>>> year
'2010'
>>> month
'01'
>>> date
'31'
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