#python-3.x #pandas #dataframe
Вопрос:
У меня есть csv-файл со столбцом (ССЫЛКА на КОД), в котором хранятся значения двух типов (1A и 1X); Я импортирую его в фрейм данных Pandas. Ссылка на КОД не всегда может начинаться с 1X, но я могу найти индекс первой строки, начинающийся с 1X, и соответствующим образом срезать свой фрейм данных. Я борюсь с основной задачей, которая состоит в том, чтобы фильтровать только строки, следующие последовательности 1X1A, как показано на рисунке. Я начинаю с вахтового метода.
Ввод:
CODE REF 0 1X 1 1A 2 1A 3 1X 4 1A 5 1A 6 1A 7 1X 8 1A
Ожидаемый результат:
CODE REF 0 1X 1 1A 3 1X 4 1A 7 1X 8 1A
Комментарии:
1. пожалуйста, предоставьте свои данные в виде текста и предоставьте дополнительную информацию о том, как обобщается проблема
2. @mozway это трудно описать; Я думаю, что лучше всего было бы сказать, что я хочу захватить только пары 1X1A; других столбцов нет.
3. Я вижу, пожалуйста, проверьте мой ответ. Пожалуйста, в следующий раз предоставьте вам данные в виде текста, а не изображений.
Ответ №1:
Вы можете создать маску, чтобы проверить, является ли данная строка 1X, а следующая 1A, а затем срезать, используя маску или ее сдвиг:
m = df['CODE REF'].eq('1X')amp;df['CODE REF'].shift(-1).eq('1A') df[m|m.shift()]
Выход:
CODE REF 0 1X 1 1A 3 1X 4 1A 7 1X 8 1A