【发布时间】: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))
不开心。
期望的最终目标
- 读取数据帧,其中“任务类型”字段中的所有值都根据 [col_list] 中提供的列表进行检查。
- 如果 [col_list] 变量中的这两个值都存在 - TRUE,否则:FALSE
- 在 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