#python #pandas
#python #pandas
Вопрос:
Это мой список:
my_list = [
2002-01-11 22:15:00,
2002-02-12 10:30:00,
2002-03-14 02:30:00,
2002-04-12 22:15:00
]
У меня есть фрейм данных:
dt_object diff
0 2002-01-01 00:00:00 -160.95041
1 2002-01-01 00:15:00 -160.81016
2 2002-01-01 00:30:00 -160.66989
3 2002-01-01 00:45:00 -160.52961
4 2002-01-01 01:00:00 -160.38930
Я хочу создать новый столбец ‘Hit’ со значением False по умолчанию и значением True, когда даты из списка совпадают.
Ожидаемый результат:
dt_object diff hit
0 2002-01-01 00:00:00 -160.95041 False
1 2002-01-01 00:15:00 -160.81016 False
2 2002-01-01 00:30:00 -160.66989 False
3 2002-01-01 00:45:00 -160.52961 False
4 2002-01-01 01:00:00 -160.38930 False
....................
....................
1010 2002-01-11 22:15:00 -150.54678 True
потому что 2002-01-11 22:15:00 находится в списке.
Ответ №1:
вы можете сделать:
import numpy as np
df['hit'] = np.where(df['dt_object'].isin(my_list),1,0)) # will give 1 or 0 according if the condition is satisfied.
Чтобы просто вернуться True
или False
, просто удалите возвращаемую часть.
df['hit'] = df['dt_object'].isin(my_list)
Комментарии:
1. вам не нужен numpy where во втором варианте
Ответ №2:
Использовать Series.isin
df['hit'] = df['dt_object'].isin(my_list)