为什么两个相似的函数在不同的Python中工作?



我需要用':'符号分隔字符串,然后选择这个分隔字符串的左侧。这些函数运行良好,我得到了正确的输出。

df['title'].apply(lambda x: x.split(':')[0])
df['title'].str.split(':').str[0]

为什么这段代码给出一个错误

df['title'].split(':')[0]
AttributeError: 'Series' object has no attribute 'split'

当您使用df["column"]时,您将获得一个系列对象,并且split()属性不适用于该类型的对象。使用df["column"]时。你实际上是在访问序列的值,python将它们识别为字符串,因此你可以在这些对象上执行字符串函数。

您正在尝试拆分数据帧的整个标题列(即错误消息中提到的Series)。您要做的是对数据帧的每一行应用一个函数,这可以通过在数据帧上调用apply来实现,就像您在第一个代码块中所做的那样。

最新更新