【问题标题】:Pandas apply function is not resolving熊猫应用功能无法解决
【发布时间】:2020-06-12 17:38:22
【问题描述】:

Please view the Data Frame by clicking this image

Names=jobs[['Company Name']]
F = lambda x: x.split("\n")
Names.apply(F , axis=1)

AttributeError: 'Series' 对象没有属性 'split'

当我运行以下代码时,它可以工作。为什么我会遇到这个问题,我以前从来没有遇到过这样的问题。 PS:与以前不同,我从抓取网站获得了这些数据。我只是希望它与此有关

Names=jobs[['Company Name']]
F = lambda x: x.str.split("\n")
Names.apply(F , axis=1)

当我尝试时,这是为什么:

Ratings = jobs['Company Name'].apply(lambda x:x.split("\n")[1] , axis=1)

我收到这个错误

TypeError: <lambda>() got an unexpected keyword argument 'axis'

【问题讨论】:

  • 当您在单个列上使用相同的操作时不需要 lambda,使用 str.split('\n',expand=True) 然后将其加入您的数据框。

标签: pandas dataframe data-cleaning


【解决方案1】:

这里不需要apply,str.split是矢量化的

jobs['Company Name'].str.split('\n')

应该做的工作。

我不能告诉你为什么它以前没有工作,但我可以想象这是由于[['Company Name']] 中的双括号。当您使用双括号保留数据框的(二维结构)时,单括号会将其折叠为系列。参见例如Python pandas: Keep selected column as DataFrame instead of Series 了解更多详情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-30
    • 2017-03-29
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 2017-04-21
    • 2021-11-21
    • 2018-08-12
    相关资源
    最近更新 更多