开发者社区> 问答> 正文

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

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

展开
收起
一码平川MACHEL 2019-01-18 10:25:18 1670 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

    2019-07-17 23:25:49
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载