Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I extract the date/year/month from pandas dataframe?

I'm trying to extract year/date/month info from the 'date' column in pandas dataframe. Here is my sample code:

from datetime import datetime
def date_split(calendar):
  for row in calendar: 
    new_calendar={}
    listdate=datetime.strptime(row['date'],'%Y-%M-%D')

I haven't finished the complete code, but when i test run this part I keep getting error like this:

----> 7         listdate=datetime.strptime(row['date'],'%Y-%M-%D')
TypeError: string indices must be integers

Anyone has any idea?

Btw, this is the dataframe I use (calendar_data):

enter image description here

like image 839
Zhenyu Bo Avatar asked Jan 29 '17 06:01

Zhenyu Bo


People also ask

How do I extract year from pandas?

Method 1: Use DatetimeIndex. month attribute to find the month and use DatetimeIndex. year attribute to find the year present in the Date.


1 Answers

It seems you need to_datetime:

print (df['date'].dtype)
object

df['date'] = pd.to_datetime(df['date'])

print (df['date'].dtype)
datetime64[ns]

If need extract year, month and day to new columns:

df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day

If need list of dates:

listdate = df['date'].dt.date.tolist()
print (listdate)

[datetime.date(2017, 9, 5), 
 datetime.date(2017, 9, 4),
 datetime.date(2017, 9, 3), 
 datetime.date(2017, 9, 2),
 datetime.date(2017, 9, 1)]
like image 71
jezrael Avatar answered Nov 16 '22 03:11

jezrael