如果列表中包含特定列中的值,我想在另一列中检查它

时间:2019-01-16 03:09:38

标签: python pandas

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

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

这也适用于列表。