在python中将列表中的数据与列中的数据进行匹配

在python中将列表中的数据与列中的数据进行匹配,python,list,loops,match,Python,List,Loops,Match,我有一个很大的数据框,名为data,有几列,特别是一列“date” 我想创建一个新列“days_BH”,它告诉我日期是否为bankholidays(=1表示是,0表示否) 因此,首先我创建了一个关于法国银行假日的列表: bank_holidays= ["01-01","05-01","05-08","07-14","11-01","11-11","12-25","08-15"] 我想将其与“数据”列中的日期进行匹配,该列的类型为:pandas.core.series.series(我不太理解该

我有一个很大的数据框,名为data,有几列,特别是一列“date”

我想创建一个新列“days_BH”,它告诉我日期是否为bankholidays(=1表示是,0表示否)

因此,首先我创建了一个关于法国银行假日的列表:

bank_holidays= ["01-01","05-01","05-08","07-14","11-01","11-11","12-25","08-15"]
我想将其与“数据”列中的日期进行匹配,该列的类型为:pandas.core.series.series(我不太理解该类型)

格式为:%m-%d的列数据如下所示(前3行):


提前感谢,

如果数据框
df['data']
中的
bank_holidays
列表和数据字段的类型相同,则应执行以下操作:

 bank_holidays= ["01-01","05-01","05-08","07-14","11-01","11-11","12-25","08-15"]
 df['days_BH'] = df['data'].apply(lambda x: x == bank_holidays).map({True: 1, False: 0})

假设您有以下数据帧:

data = pd.DataFrame()
data["data"] = ["01-01", "05-01", "05-08", "07-14", "11-01", "11-11", "11-12", "11-13"]
bank_holidays = ["01-01", "05-01", "05-08", "07-14", "11-01", "11-11", "12-25", "08-15"]
然后可以使用
.isin()

打印的新数据框将如下所示:

    data  days_BH
0  01-01        1
1  05-01        1
2  05-08        1
3  07-14        1
4  11-01        1
5  11-11        1
6  11-12        0
7  11-13        0
data["days_BH"] = data["data"].isin(bank_holidays).astype(int)
    data  days_BH
0  01-01        1
1  05-01        1
2  05-08        1
3  07-14        1
4  11-01        1
5  11-11        1
6  11-12        0
7  11-13        0