为了账号安全,请及时绑定邮箱和手机立即绑定

Python - if str in df.column 输入 if 语句

Python - if str in df.column 输入 if 语句

摇曳的蔷薇 2022-07-05 19:20:01
基本上我的代码从配置文件中导入一些配置,用户可以在其中打开/关闭部分代码。配置文件看起来像,它是一个 json 文件:条件1:['str1',1] 条件2:['str2',1]字符串是将分配给 df 列的名称,整数可以是 1 或 0 以打开或关闭部分代码。在代码的开头,如果整数设置为 1,则字符串用于在数据框中创建列。for (k, v) in config_file.items():     if v[1] == 1:        df[v[0]] = np.nan所以现在我只有在条件 1 的整数为 1 时才会有一个名为“str1”的列。在代码中的某个点,我需要首先验证两个条件的整数都设置为 1,然后我需要选择所有包含值 1 的行。if condition1[1] == 1 or condition2[1] == 1:    if (len(df[df['str1'] == 1]) > 0 or len(df[df['str2'] == 1]) > 0):现在的问题是,如果两个条件之一设置为 0,比如说条件 1,那么列 df['str2'] 将不会被创建并且 len(df[df['str2'] == 1]) > 0 将引发错误。有没有办法告诉python仅在列/变量存在时才评估部分条件?非常感谢您的支持。
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

您应该将检查嵌套在另一个检查中,以验证数据框是否有一个名为“str2”的列并处理出现的不同可能性。


您要添加到代码中的检查是:


 if 'str2' in df.columns:


     # check df['str2']

     # nested if ...


 elif 'str3' in df.columns:


        #keep going checking conditions or whatever


 else: 


    #last case in your checking loop


查看完整回答
反对 回复 2022-07-05
  • 1 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号