我想查看我的数据框中的某一列是否存在某个特定的字符串,如果存在,则触发 API。到目前为止的代码:
if new_df.col1.str.contains('string') == True: POST REQUEST elif new_df.col2.str.contains('string2') == True: POST REQUEST else: print('not good')
我不断收到错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
你遇到的错误是因为 new_df.col1.str.contains('string') 返回的是一个布尔型的 Series,而你不能直接将整个 Series 与 True 比较,这会导致 ValueError。你需要使用 .any() 或 .all() 来检查该列中是否至少有一个值匹配你的条件。
new_df.col1.str.contains('string')
True
ValueError
.any()
.all()
if new_df.col1.str.contains('string').any(): # 检查 col1 是否有任何匹配的字符串 # POST REQUEST elif new_df.col2.str.contains('string2').any(): # 检查 col2 是否有任何匹配的字符串 # POST REQUEST else: print('not good')
'string'
如果你只关心是否有至少一个匹配的字符串,那么使用 .any() 是最合适的。