У меня есть фреймворк pandas

      date       
0     2010-03  
1     2017-09-14     
2     2020-10-26      
3     2004-12     
4     2012-04-01      
5     2017-02-01      
6     2013-01

Я в основном хочу отфильтровать даты после 2015-12 (декабрь 2015 г.)

Чтобы получить это:

      date       
0     2017-09-14     
1     2020-10-26          
2     2017-02-01  

Я пробовал это

df = df[(df['date']> "2015-12")]

Но я получаю сообщение об ошибке

ValueError: неверное количество элементов прошло 17, размещение подразумевает 1

1
tkxgoogle 24 Ноя 2021 в 09:19
Какая у вас версия панд?
 – 
jezrael
24 Ноя 2021 в 09:27

1 ответ

Лучший ответ

Первое для меня правильное рабочее решение:

df = df[(df['date']> "2015-12")]
print (df)
         date
1  2017-09-14
2  2020-10-26
5  2017-02-01

Если преобразовать в datetime, что для меня тоже должно быть более надежным:

df = df[(pd.to_datetime(df['date'])> "2015-12")]
print (df)
         date
1  2017-09-14
2  2020-10-26
5  2017-02-01

< Сильный > Деталь :

print (pd.to_datetime(df['date']))
0   2010-03-01
1   2017-09-14
2   2020-10-26
3   2004-12-01
4   2012-04-01
5   2017-02-01
6   2013-01-01
Name: date, dtype: datetime64[ns]
1
jezrael 24 Ноя 2021 в 09:20