您可以使用
str.startswithDataframe方法给出更一致的结果:
In [11]: s = pd.Series(['a', 'ab', 'c', 11, np.nan])In [12]: sOut[12]:0 a1 ab2 c3 114 NaNdtype: objectIn [13]: s.str.startswith('a', na=False)Out[13]:0 True1 True2 False3 False4 Falsedtype: bool并且布尔索引将可以正常工作(我更喜欢使用
loc,但是在没有索引的情况下也可以正常使用):
In [14]: s.loc[s.str.startswith('a', na=False)]Out[14]:0 a1 abdtype: object。
看起来您在系列/列中的至少一个元素是一个浮点数,它没有startswith方法,因此AttributeError,列表推导应该引发相同的错误…



