Если строка содержит дату, получить значение другой ячейки - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь перебрать строки в кадре данных Pandas и проверить, совпадает ли дата с определенной датой, и, если это так, вернуть значение другой ячейки.Я подумал, что мог бы создать для этого маску, а затем использовать np.where, чтобы назначить значения True или False этим строкам.Я делал это в прошлом, используя строки и целые числа, но теперь, когда он использует дату, она не работает.

Если я сделаю:

df[pd.to_datetime(df['birth_date']) == '1990-12-10']

Возвращает строкучеловек, чья дата рождения это тот день.

Однако, если я это сделаю:

for index, row in df.iterrows(): 
    bday_mask = (pd.to_datetime(row['birth_date']) == '1990-12-10')
    df['bday_is_today'] = np.where(bday_mask, True, False)

Он присваивает каждой строке значение "False".Как поставить флажок в строках, если их дата рождения равна этой дате?

1 Ответ

0 голосов
/ 01 октября 2018

Вы не нуждаетесь в итерации, просто получите индексы всех строк, где ваше условие истинно:

df["bday_is_today"] = False
bdays = df[pd.to_datetime(df['birth_date']) == '1990-12-10'].index
df.loc[bdays, 'bday_is_today'] = True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...