Python/Pandas: как сохранить значение в столбце до тех пор, пока не будет выполнено условие?

В python/pandas я пытаюсь добавить столбец, помечающий улицы (префлоп, флоп, терн и ривер) в игре в покер. Вот так выглядит мой набор данных. Я пытаюсь добавить столбец "Улица".

МероприятиеИгрокДата и времяУлица
Стартовая рука 1NaN2022-04-08T03:12:22Префлоп
Держать париБ2022-04-08T03:13:22Префлоп
ВызовС2022-04-08T03:14:22Префлоп
СкладыватьА2022-04-08T03:15:22Префлоп
ФлопNaN2022-04-08T03:16:22Флоп
Держать париБ2022-04-08T03:17:22Флоп
ВызовС2022-04-08T03:18:22Флоп
ПеременаNaN2022-04-08T03:19:22Перемена
Держать париБ2022-04-08T03:20:22Перемена
СкладыватьС2022-04-08T03:21:22Перемена
Конечная рука 1NaN2022-04-08T03:22:22Перемена
Стартовая рука 2NaN2022-04-08T03:23:22Префлоп
ПроверятьС2022-04-08T03:24:22Префлоп

Мне трудно понять, как заполнить строки между соответствующими событиями в столбце «Улица». Мое текущее решение принимает только те события, где явно указаны «Флоп», «Терн» и «Ривер». Есть ли способ перебирать строки и поддерживать значение в столбце до тех пор, пока не будет выполнено условие? Я предполагаю, что это как-то связано с Groupby, но я не совсем уверен.

Спасибо!

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
19
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда вы выводите значения Улица непосредственно из определенных ключевых слов в столбце Мероприятие, обязательно назначьте заполнитель отсутствующего значения NumPy, np.nan, тем полям, где вы не можете вывести значение напрямую.

Затем вы можете использовать метод pandas fillna(), передав аргумент method='ffill' для прямого заполнения, что означает, что каждое текущее значение будет распространено на все последующие значения NaN.

def infer_street(event):
    if 'Starting' in event:
        return 'Preflop'
    if 'Flop' in event:
        return 'Flop'
    if 'Turn' in event:
        return 'Turn'
    return np.nan

df['Street'] = df['Event'].apply(infer_street)
df['Street'].fillna(method='ffill', inplace=True)

Другие вопросы по теме