【发布时间】:2019-08-01 07:46:29
【问题描述】:
我正在尝试删除 Vndr 列中不包含“HW”或“CA”的行。这是我的代码:
data.drop(data[data.Vndr != 'HW' or 'CA'].index)
我收到此错误“ValueError:系列的真值不明确。请使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。”
【问题讨论】:
我正在尝试删除 Vndr 列中不包含“HW”或“CA”的行。这是我的代码:
data.drop(data[data.Vndr != 'HW' or 'CA'].index)
我收到此错误“ValueError:系列的真值不明确。请使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。”
【问题讨论】:
您可以使用isin
data.loc[~data.Vndr.isin([ 'HW' , 'CA']),]
【讨论】:
可以使用
data[data.Vndr.str.contains('HW|CA'])
一般方法
s="|".join(['HW', 'CA'])
data[data.Vndr.str.contains(s)
【讨论】:
确实需要
... or data.Vndr != ‘CA’
否则没有意义
【讨论】:
您可以对没有此类关键字的行进行子集化,而不是删除此类行。
你可以这样工作:
data = data[(data['Vndr'] != 'CA') | (data['Vndr'] != 'HW')]
【讨论】: