У меня есть указатель дат в фрейме данных, начиная с 2001 по 2015 год. Я хочу изолировать даты 2015 года. Я хочу воспользоваться преимуществом формата - все даты начинаются с полного года - например, 2004abc ...
Я хотел бы просто создать новый фрейм данных для всех элементов, дата которых начинается с 2015 года.
Когда столбец представляет собой строку, я могу сделать это так:
df1 = df[df['some column name']=='some string']
Но когда я пытаюсь
df[df['some column name']str.startwith('2015')]
Я получаю сообщение об ошибке.
Есть какой-либо способ сделать это?
Ошибка, которую я получаю, заключается в том, что я просто не распознаю «какое-то имя столбца» в df [«какое-то имя столбца»].
Обновлено: просто короткое редактирование, чтобы сказать, что я думаю, что проблема здесь связана с попыткой фильтрации по индексу, который может обрабатываться иначе, чем обычный столбец. См. Ответ @ Jezrael ниже, который сработал.
@ZakS, для будущих читателей можно редактировать с точной ошибкой получить?
@Wen, я все еще получаю сообщение об ошибке. Ему не нравится столбец, по которому я фильтрую. в моем случае столбец называется «Дата», а ошибка, которую я получаю, - это просто «Дата».
Привет @COLDSPEED, вопрос, с которым вы это связали, спрашивает, как фильтровать по имени столбца, но моя проблема в другом. Он спрашивает о значениях в столбце. Не могли бы вы открыть вопрос?
@ZakS - думаю нужен df.loc[:, df.columns.str.startswith('2015')]
@ZakS - Еще одно решение - df.filter(regex='^2015')
это отлично работает.
df['some column name'].str.startwith('2015')