2015-08-07 7 views
3

У меня есть панд dataframe с колонкой, как datatime, который выглядит следующим образом:как нарезать панда dataframe на основе столбца даты и время

data.ts_placed 
Out[68]: 
1   2008-02-22 15:30:40 
2   2008-03-20 16:56:00 
3   2008-06-14 21:26:02 
4   2008-06-16 10:26:02 
5   2008-06-23 20:41:03 
6   2008-07-17 08:02:00 
7   2008-10-13 12:47:05 
8   2008-11-14 09:20:33 
9   2009-02-23 11:24:18 
10  2009-03-02 10:29:19 

Я хотел бы нарезать dataframe путем устранения всех строк до 2009

ответ

7

Вы можете использовать простое сравнение строк для сравнения значений против годичного строки:

In [63]: 
df.loc[df['date'] >= '2009'] 

Out[63]: 
        date 
index      
9  2009-02-23 11:24:18 
10 2009-03-02 10:29:19 

Или использовать атрибут dt для доступа года:

In [64]: 
df.loc[df['date'].dt.year >= 2009] 

Out[64]: 
        date 
index      
9  2009-02-23 11:24:18 
10 2009-03-02 10:29:19 
+0

Работает ли .loc с датами «от» и «до», например, год> = 2009 И год <2014? –

+2

@DrunkenMaster для нескольких условий вам нужно использовать побитовый оператор и заключить условия в круглые скобки '()' из-за приоритета оператора, поэтому 'df.loc [(df ['date']. Dt.year> = 2009) & (df ['date']. dt.year <2014)] ' – EdChum