Python Pandas Select an index where the index is greater than x

Say I have a DataFrame df with a date as an index and some values. How to select rows in which the date is greater than some value of x ?

I know that I can convert the index to a column and then execute the select command df[df['date']>x] , but is it slower than the operation on the index?

+11
source share
2 answers

An example of selecting from a DataFrame using an index:

 from numpy.random import randn from pandas import DataFrame from datetime import timedelta as td import dateutil.parser d = dateutil.parser.parse("2014-01-01") df = DataFrame(randn(6,2), columns=list('AB'), index=[d + td(days=x) for x in range(1,7)]) In [1]: df Out[1]: AB 2014-01-02 -1.172285 1.706200 2014-01-03 0.039511 -0.320798 2014-01-04 -0.192179 -0.539397 2014-01-05 -0.475917 -0.280055 2014-01-06 0.163376 1.124602 2014-01-07 -2.477812 0.656750 In [2]: df[df.index > dateutil.parser.parse("2014-01-04")] Out[2]: AB 2014-01-05 -0.475917 -0.280055 2014-01-06 0.163376 1.124602 2014-01-07 -2.477812 0.656750 
+17
source

The existing answer is correct, however, if we choose based on the index, the second method from here will be more crude:

 # Set index df = df.set_index(df['date']) # Select observations between two datetimes df.loc[pd.TimeStamp('2002-1-1 01:00:00'):pd.TimeStamp('2002-1-1 04:00:00')] 
0
source

Source: https://habr.com/ru/post/970481/


All Articles