Suraj S Jain
Suraj S Jain

Reputation: 535

Extract day of month as array from datetime column

I have loaded a pandas dataframe from a .csv file that contains a column having datetime values.

df = pd.read_csv('data.csv')

The name of the column having the datetime values is pickup_datetime. Here's what I get if i do df['pickup_datetime'].head():

0   2009-06-15 17:26:00+00:00
1   2010-01-05 16:52:00+00:00
2   2011-08-18 00:35:00+00:00
3   2012-04-21 04:30:00+00:00
4   2010-03-09 07:51:00+00:00
Name: pickup_datetime, dtype: datetime64[ns, UTC]

How do I convert this column into a numpy array having only the day values of the datetime? For example: 15 from 0 2009-06-15 17:26:00+00:00, 05 from 1 2010-01-05 16:52:00+00:00, etc..

Upvotes: 2

Views: 2848

Answers (2)

Karn Kumar
Karn Kumar

Reputation: 8816

Just adding another Variant, although coldspeed already provide the briefed answer as a x-mas and New year bonus :-) :

>>> df
             pickup_datetime
0  2009-06-15 17:26:00+00:00
1  2010-01-05 16:52:00+00:00
2  2011-08-18 00:35:00+00:00
3  2012-04-21 04:30:00+00:00
4  2010-03-09 07:51:00+00:00

Convert the strings to timestamps by inferring their format:

>>> df['pickup_datetime'] = pd.to_datetime(df['pickup_datetime'])
>>> df
      pickup_datetime
0 2009-06-15 17:26:00
1 2010-01-05 16:52:00
2 2011-08-18 00:35:00
3 2012-04-21 04:30:00
4 2010-03-09 07:51:00

You can pic the day's only from the pickup_datetime:

>>> df['pickup_datetime'].dt.day
0    15
1     5
2    18
3    21
4     9
Name: pickup_datetime, dtype: int64

You can pic the month's only from the pickup_datetime:

>>> df['pickup_datetime'].dt.month
0    6
1    1
2    8
3    4
4    3

You can pic the Year's only from the pickup_datetime

>>> df['pickup_datetime'].dt.year
0    2009
1    2010
2    2011
3    2012
4    2010

Upvotes: 1

cs95
cs95

Reputation: 402263

df['pickup_datetime'] = pd.to_datetime(df['pickup_datetime'], errors='coerce')
df['pickup_datetime'].dt.day.values
# array([15,  5, 18, 21,  9])

Upvotes: 6

Related Questions