pandas ValueError:序列的真值不明确,请使用.empty、.bool()、.item()、.any()或.all()[重复]

jtoj6r0c  于 2023-01-01  发布在  其他
关注(0)|答案(1)|浏览(154)
    • 此问题在此处已有答案**:

Truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()(14个答案)
2天前关闭。
在Python中,我尝试创建这样的代码:迭代并检查Gender是否为"E",如果是,那么如果"IncState"是"ca"、"california"(不考虑大小写)或None,那么它就插入"California",否则它就在DefendantsTbl ['IncState '][i]中插入值。
我一直收到"ValueError:Series的真值不明确。请使用. empty、. bool()、. item()、. any()或. all()。"错误。
这是示例数据。
| | 姓名|性别问题|简称|商务|州|邮政编码|Inc状态|合并名称|
| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------|
| 无|公司1| E级|CWI|无|无|无|无|CWI|
| 1个|公司2| E级|无|无|无|无|特拉华州|公司2|
这是我正在使用的代码。

import os, sys
import pandas as pd 
from janitor import xlsx_table
from docx.shared import Inches, Pt
import numpy as np
import xlwings as xw
from docx import Document
from docx.enum.style import WD_STYLE_TYPE
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from time import perf_counter    
doc = Document()
docap = doc.add_paragraph

for i in range(len(DefendantsTbl)):
if DefendantsTbl['Gender'][i].lower() == 'e':
    docap('At all times material hereto, ' + DefendantsTbl['Name'][i] + ' was a ' 
+ ('California' if (str(DefendantsTbl['IncState'][i]).lower() == 'california') 
or (str(DefendantsTbl['IncState'][i]).lower() ==
'ca') or (DefendantsTbl['IncState'][i] is None)
else DefendantsTbl['IncState'][i]) + 'corporation that regularly transacted business in ' + CaseInfoTbl['County'] + ' County, California.')
7eumitmz

7eumitmz1#

当您想要获取pandas.Seriesbool时,会抛出异常:

>>> import pandas as pd
>>> x = pd.Series([1])
>>> bool(x)
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

你碰到的是操作符隐式地将操作数转换为bool的地方(你使用了if,但它也发生在and、or和while中):

>>> df or df
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
>>> df and df
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
>>> if df:
...     print('fun')
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
>>> while df:
...     print('fun')
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

相关问题