【问题标题】:How to use Python Pandas isin() in the context of an IF statement如何在 IF 语句的上下文中使用 Python Pandas isin()
【发布时间】:2021-09-15 07:40:06
【问题描述】:

在这里解决问题时遇到了一些麻烦,可以使用一些建议。

col_list = ['Task1','Task2']
        
if new_temp_df['Task Type'].isin(col_list):    ### THIS IS THE OFFENDING LINE!

     temp_list2.append(new_temp_df['Job Number'])
     results2_df = results2_df.append({
                            'Job Number': new_temp_df['Job'],
                            'Task1': 'Yes',
                            'Task1 Runs': new_temp_df['Runs'],
                            'Task2': 'Yes',
                            'Task2 Runs': new_temp_df['Runs'],
                            'Campaign-level Match': 'Yes',
                            }, ignore_index=True)

else:
    pass ..........

我不断收到错误:

ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

例如,我尝试了适合的变体(基于谷歌搜索)

if new_temp_df['Task Type'].isin(col_list).all()

if np.where(new_temp_df['Task Type'].isin(col_list))

不开心。

期望的最终目标

  1. 读取数据帧,其中“任务类型”字段中的所有值都根据 [col_list] 中提供的列表进行检查。
  2. 如果 [col_list] 变量中的这两个值都存在 - TRUE,否则:FALSE
  3. 在 IF 语句级别进行评估 - 返回 bool 值(希望所有人从此过上幸福的生活)

拜托,任何想法都会很棒。我看到 isin() 用于所有功能,但没有用于 IF 语句 - 非常有兴趣了解该方法。

提前谢谢大家

【问题讨论】:

  • 看来你需要反过来,np.isin(col_list, new_temp_df['Task Type']).all() ?
  • 感谢您的回答。我试过np.isin(col_list, new_temp_df['Task Type']).all(): 并得到相同的响应:ValueError:系列的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

标签: python-3.x pandas dataframe if-statement isin


【解决方案1】:

any 可用于if conditional

玩具示例:

输入设置

col_list = ['Task1','Task2']

df = pd.DataFrame({
    'Task Type':['Test1', 'Task1'],
    'val':[1,2]
})
df

输入df

Task Type   val
0   Test1   1
1   Task1   2

代码

if any(df['Task Type'].isin(col_list)):
    print('task')

输出

task

【讨论】:

  • 您好 Utsav - 感谢您的回答。我试过if any(new_temp_df['Task Type'].isin(col_list)):,不幸的是它仍然爆炸,同样的错误。
  • 你能分享new_temp_df的样本吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 2012-12-22
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
相关资源
最近更新 更多