#python #pandas #numeric
#python #pandas #числовой
Вопрос:
На удивление, не удается найти простой ответ.
У меня есть два столбца во фрейме данных. Столбец 1 является int64
.
Column1 Column2
19970101 400
19970102 300
19980101 200
Как удалить строки с 1997
шаблоном в Column1
? Я полагаю, что это не строка, поэтому регулярное выражение не будет работать.
Я думаю, я могу разделить его на две части и удалить все строки, просто имея 1997
отдельно, а затем снова объединить, но было бы здорово найти более простое решение.
Спасибо!
Ответ №1:
Ну:
df[df['Column1']//10000 != 1997]
Или преобразование его в строку:
df[df['Column1'].astype(str).str[:4] != '1997']
Ответ №2:
Затем преобразуйте в str
df[~df['Column1'].astype(str).str.startswith('1997')]
Out[49]:
Column1 Column2
2 19980101 200
Когда мы завершаем работу с объектом datetime, мы всегда можем сделать to_datetime
df[pd.to_datetime(df.Column1,format='%Y%m%d').dt.year!=1997]
Out[52]:
Column1 Column2
2 19980101 200