python - Python - if str in df.column 输入 if 语句
问题描述
基本上我的代码从配置文件中导入一些配置,用户可以在其中打开/关闭部分代码。配置文件看起来像,它是一个 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仅在列/变量存在时才评估部分条件?非常感谢您的支持。
解决方案
您应该将检查嵌套在另一个检查中,以验证数据框是否有一个名为“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
推荐阅读
- cplex - How is the lower bound that is displayed created?
- python - 如何在我的 python 代码中避免这个错误
- python - 如何为泡菜对象使用 requirements.txt 或类似文件
- html - 带有 viewBox 和 preserveAspectRatio="none" 的 SVG 元素,其中 rect 仅随容器 div 的宽度缩放
- google-apps-script - 当我使用 App 脚本创建时,Google 日历活动关闭了一天
- angular - 选择下拉项目并以角度 7 关闭后,弹出窗口不清除
- swift - 点击节点时如何防止崩溃
- android - httpclient 定义了与 Android 现在提供的类冲突的类
- c# - WPF 将 TabControl 项内容绑定到不同的数据模板
- azure-data-studio - 我们可以更改“新查询”名称模板吗?