我有一个大数据框,名为数据,有几列,特别是一列" date"。
我想创建一个新专栏" days_BH"谁告诉我,如果日期是银行假日与否(= 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行):
data
07-05
07-06
07-07
提前致谢,
答案 0 :(得分:0)
如果数据框bank_holidays
中的df['data']
列表和数据字段属于同一类型,则应执行以下操作:
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})
答案 1 :(得分: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"] = 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