检查字符串中子字符串之间的相等性时获取 "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