Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to filter by month, day, year with Pandas

Tags:

python

pandas

I create the DataFrame with:

df = pandas.read_csv("data.csv", sep=';', parse_dates = 1, dayfirst = True)

I then get the following results:

                   Qty     System_created             Total
0                   2  2014-10-14 08:13:46.000         21.76  
1                   1  2014-10-14 08:13:46.000          4.16  
2                   2  2014-10-14 08:30:46.000         27.90  
3                   1  2014-10-14 08:30:46.000          4.95  
4                   1  2014-10-14 08:30:46.000          4.95  
5                   2  2014-11-05 11:15:47.000         21.76  
6                   1  2014-11-05 11:15:48.000          3.32  

But I do not know how to filter by month(or year, day, hour etc...). Something like df[df["System_created"].day] would be ideal. Is that possible?

like image 326
user3445881 Avatar asked Nov 01 '25 01:11

user3445881


1 Answers

So long as your pandas version is 0.15 or higher then the following would work assuming your dtype is already a datetime:

In [167]:

df[df.System_created.dt.day == 5]
Out[167]:
       Qty      System_created  Total
index                                
5        2 2014-11-05 11:15:47  21.76
6        1 2014-11-05 11:15:48   3.32

So basically the dt attribute allows you to access the components of your datetime to perform the comparisons you desire for filtering

like image 196
EdChum Avatar answered Nov 03 '25 17:11

EdChum



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!