2016-02-12 4 views
4

У меня есть DataFrame Pandas с использованием Date в качестве индекса. Как я могу удалить все строки с датой «2000-01-06»?Как удалить строки для определенной даты в кадре данных Pandas?

Пример кода:

import numpy as np 
import pandas as pd 

dates = pd.date_range('1/1/2000', periods=8) 
df = pd.DataFrame(np.random.randn(8, 3), index=dates, columns=['A', 'B', 'C']) 
df.index.name = 'Date' 

Пример DataFrame:

    A   B   C 
Date          
2000-01-01 -0.501547 -0.227375 0.275931 
2000-01-02 0.994459 1.266288 -0.178603 
2000-01-03 -0.982746 -0.339685 0.157390 
2000-01-04 -1.013987 -1.074076 -2.346117 
2000-01-05 -0.101157 -0.698663 1.025318 
2000-01-06 -1.697615 -0.081638 1.075712 
2000-01-07 0.617587 -1.561204 -1.685774 
2000-01-08 0.049115 0.579139 -1.036961 

ответ

6

Вы можете передать DateTime в drop уронить эту строку:

In [12]: 
df.drop(pd.to_datetime('2000-01-06')) 

Out[12]: 
        A   B   C 
Date          
2000-01-01 -0.401531 -1.076727 0.519324 
2000-01-02 0.022450 0.655763 -0.592045 
2000-01-03 0.579927 1.358475 0.803414 
2000-01-04 0.346246 -0.252332 -1.347014 
2000-01-05 0.101308 0.912279 0.020754 
2000-01-07 0.869264 0.699575 0.385521 
2000-01-08 0.098829 -0.237605 1.112033 
+0

Отлично, спасибо так много! – omkar

0

Вы можете также падение список значения, например:

date_list = [datetime(2009, 5, 2), 
      datetime(2010, 8, 22), 
      datetime(2010, 9, 19), 
      datetime(2011, 6, 19), 
      datetime(2011, 7, 17), 
      datetime(2015, 5, 23), 
      datetime(2016, 2, 20)] 
df = df.drop(date_list) 

Обратите внимание, что, поставив InPlace = True в аргументе капли не должны определить новый объект, но это делается на том же объекте

df.drop(date_list, inplace=True) 
Смежные вопросы