检查字符串中子字符串之间的相等性时获取 "The truth value of a Series is ambiguous.." 的值错误
Getting value error of "The truth value of a Series is ambiguous.." while checking for equality between sub-strings in a string
我正在尝试检查特定的 "Route" 字符串是否以相同的子字符串开始和结束,但我收到错误
"ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()."
if df1["Route"].str[:3] == df1["Route"].str[-3:]:
print("True")
else:
print("False")
我已经尝试使用针对 SO 中类似查询提到的建议方法解决问题,但无济于事..
这是我尝试在其上应用此查询的 "Route" 列中的片段:
比博姆AMD
电视广播电台
AMDDELAMD
AMDCCCUAMD
AMD宝玛
PNQAMDPNQ
德拉德尔
AMDGOAAMD
您正在尝试使用 pandas 系列作为 if
条件的谓词,这不是有效操作。
让我说明一下我的意思。
df1["Route"].str[:3]
给予
0 BBI
1 STV
2 AMD
3 AMD
4 AMD
5 PNQ
6 DEL
7 AMD
Name: Route, dtype: object
df1["Route"].str[-3:]
给出:
0 AMD
1 TRV
2 AMD
3 AMD
4 AMD
5 PNQ
6 DEL
7 AMD
Name: Route, dtype: object
所以现在当您将这两个用作 if
条件的一部分时 python 会抱怨 True 值不明确。
我假设您想为 'Route' 列中的每一行打印 True 或 False。
您可以尝试以下操作。
df1['Route'].apply(lambda x: x[:3] == x[-3:])
这将打印以下内容。
0 False
1 False
2 True
3 True
4 True
5 True
6 True
7 True
Name: Route, dtype: bool
我正在尝试检查特定的 "Route" 字符串是否以相同的子字符串开始和结束,但我收到错误 "ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()."
if df1["Route"].str[:3] == df1["Route"].str[-3:]:
print("True")
else:
print("False")
我已经尝试使用针对 SO 中类似查询提到的建议方法解决问题,但无济于事..
这是我尝试在其上应用此查询的 "Route" 列中的片段: 比博姆AMD 电视广播电台 AMDDELAMD AMDCCCUAMD AMD宝玛 PNQAMDPNQ 德拉德尔 AMDGOAAMD
您正在尝试使用 pandas 系列作为 if
条件的谓词,这不是有效操作。
让我说明一下我的意思。
df1["Route"].str[:3]
给予
0 BBI
1 STV
2 AMD
3 AMD
4 AMD
5 PNQ
6 DEL
7 AMD
Name: Route, dtype: object
df1["Route"].str[-3:]
给出:
0 AMD
1 TRV
2 AMD
3 AMD
4 AMD
5 PNQ
6 DEL
7 AMD
Name: Route, dtype: object
所以现在当您将这两个用作 if
条件的一部分时 python 会抱怨 True 值不明确。
我假设您想为 'Route' 列中的每一行打印 True 或 False。 您可以尝试以下操作。
df1['Route'].apply(lambda x: x[:3] == x[-3:])
这将打印以下内容。
0 False
1 False
2 True
3 True
4 True
5 True
6 True
7 True
Name: Route, dtype: bool