- 此问题在此处已有答案**:
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.')
1条答案
按热度按时间7eumitmz1#
当您想要获取
pandas.Series
的bool
时,会抛出异常:你碰到的是操作符隐式地将操作数转换为bool的地方(你使用了if,但它也发生在and、or和while中):