Pandas.Series получают 10 значений до известной даты - PullRequest
0 голосов
/ 07 июня 2019

У меня есть pandas.Series, которая выглядит примерно так:

data = 
                  '.INX'
    Date
    2019-01-29    2640.000000
    2019-01-30    2681.005561
    2019-01-31    2689.750205
    2019-02-01    2751.544352
    2019-02-04    2745.497311
    2019-02-05    2767.970645
    2019-02-06    2798.255994
    2019-02-07    2707.690765
    2019-02-08    2703.569149
    2019-02-11    2640.521470
    2019-02-12    2645.174583
    2019-02-13    2644.231926
    2019-02-14    2658.562312
    2019-02-15    2658.030814
    2019-02-19    2607.297839
    2019-02-20    2553.135199
    2019-02-21    2553.355821
    2019-02-22    2514.045036
    2019-02-25    2474.393290
    2019-02-26    2423.449722

Я хочу получить 10 точек исторических данных до '2019-02-20', но не могу понять, как.

Я пытался:

data['2019-02-20':-10]

и, вероятно, не к моему удивлению, это не сработало.Могу ли я разумно смешивать типы индексов или мне нужно получить индекс и найти правильные даты?

Ответы [ 2 ]

2 голосов
/ 07 июня 2019

Похоже, что Date является вашим индексом, поэтому вы можете попробовать преобразовать в datetime, если index еще не datetime

df.index = pd.to_datetime(df.index)

Тогда вы можете сделать:

df.loc[df.index < '2019-02-20'].tail(10)

или

# extract 11 rows ending with the said date
# then taking top 10 rows
df.loc[:'2019-02-20'].tail(11).head(10)

Примечание : второй подход не работает должным образом, если дата запроса отсутствует в индексе.

Выход:

                 '.INX'
Date                   
2019-02-05  2767.970645
2019-02-06  2798.255994
2019-02-07  2707.690765
2019-02-08  2703.569149
2019-02-11  2640.521470
2019-02-12  2645.174583
2019-02-13  2644.231926
2019-02-14  2658.562312
2019-02-15  2658.030814
2019-02-19  2607.297839
1 голос
/ 07 июня 2019

Используйте Index.get_loc для позиций, поэтому возможно использование DataFrame.iloc:

p = data.index.get_loc('2019-02-20') + 1
df = data.iloc[p-10:p]
print (df)
                  .INX'
'Date                  
2019-02-06  2798.255994
2019-02-07  2707.690765
2019-02-08  2703.569149
2019-02-11  2640.521470
2019-02-12  2645.174583
2019-02-13  2644.231926
2019-02-14  2658.562312
2019-02-15  2658.030814
2019-02-19  2607.297839
2019-02-20  2553.135199
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...