- 此问题在此处已有答案**:
(13个答案)
2天前关闭。
我尝试使用3个字段"Status"、"Emp_Type"和"Check"创建一个if语句。我想删除不符合条件的行。但我一直收到错误:
ValueError:Series的真值不明确。请使用. empty、abool()、. item()、. any()或. all()
我试着将Series改为字符串,并在if语句中使用"and"和"&",但什么也没做。下面是我试过的代码和数据的样子:
#changing Fields from series to string.
df.Check.apply(str)
df.Status.apply(str)
#Dropping rows with conditions
if(df['Check'] == 'Check') and (df['Emp_Type'] == 'Contractor') and (df['Status'] == 'T'):
df.drop()
数据如下所示:
ID Name Status Emp_Type Check
1234 John Doe A Contractor Ignore
1234 John Doe T Contractor Ignore
1234 John Doe A Employee Ignore
1234 John Doe T Contractor Check
1234 John Doe A Employee Ignore
1234 John Doe T Contractor Check
我需要的是:
ID Name Status Emp_Type Check
1234 John Doe A Contractor Ignore
1234 John Doe T Contractor Ignore
1234 John Doe A Employee Ignore
1234 John Doe A Employee Ignore
1条答案
按热度按时间gblwokeq1#
Pandas的工作方式与标准的if语句稍有不同;至少,如果你考虑行或列的方式,你需要把单个的比较结果按布尔方式组合起来。
您可能需要: