How to get the closest single row after a specific datetime index using Python Pandas

后端 未结 3 446
温柔的废话
温柔的废话 2020-12-15 06:56

DataFrame I have:

            A   B   C 
2012-01-01  1   2   3 
2012-01-05  4   5   6 
2012-01-10  7   8   9 
2012-01-15  10  11  12 

What

相关标签:
3条回答
  • 2020-12-15 07:24

    You might want to go directly do the index:

    i = frame.index.searchsorted(date)
    frame.ix[frame.index[i]]
    

    A touch verbose but you could put it in a function. About as good as you'll get (O(log n))

    0 讨论(0)
  • 2020-12-15 07:26

    Couldn't resist answering this, even though the question was asked, and answered, in 2012, by Wes himself, and again in 2015, by ajsp. Yes, besides 'truncate', you can also use get_loc with the option 'nearst'

    df.iloc[df.index.get_loc(datetime.datetime(2016,02,02),method='nearest')]
    
    0 讨论(0)
  • 2020-12-15 07:38

    Couldn't resist answering this, even though the question was asked, and answered, in 2012, by Wes himself. Yes, just use truncate.

    df.truncate(before='2012-01-07')
    
    0 讨论(0)
提交回复
热议问题