case:如果holiday_date_list中包含“ nextday_date”列中的值,我想在“ nextday_holiday”中将其检查为1
以下代码正确。但是这段代码可以更简洁吗?
train = pd.read_csv("./train.csv")
holiday_date_list = [a, b, c, d]
idx = [idx for idx, value in enumerate(train["nextday_date"]) if value in holiday_date_list]
train.loc[idx, "nextday_holiday"] = 1
答案 0 :(得分:1)
IIUC:
df = pd.DataFrame([["11","2", "6"], ["12","4", "2"], ["13","3", "4"]],
columns=["ix","a", "b"])
ix a b
0 11 2 6
1 12 4 2
2 13 3 4
检查a中的值是否包含在b中的值中:
df['res']=df.a.isin(df.b).astype(int)
>>df
ix a b res
0 11 2 6 1
1 12 4 2 1
2 13 3 4 0
这也适用于列表。