Заполнить столбец pandas значениями из списка

#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)