创建操作不同字符串清理操作的函数

我构建了一个执行多个清理操作的函数,但是当我在对象列上运行它时,我得到属性错误:'str'对象没有属性'str'错误。为什么?


news = {'Text':['bNikeb invests in shoes', 'bAdidasb invests in t-shirts', 'dog drank water'], 'Source':['NYT', 'WP', 'Guardian']}

news_df = pd.DataFrame(news)


def string_cleaner(x):

    x = x.str.strip()

    x = x.str.replace('.', '')

    x = x.str.replace(' ', '')


news_df['clean'] = news_df['Text'].apply(string_cleaner)


30秒到达战场
浏览 65回答 1
1回答

繁星coding

news = {'Text':['bNikeb invests in shoes', 'bAdidasb invests in t-shirts', 'dog drank water'], 'Source':['NYT', 'WP', 'Guardian']}news_df = pd.DataFrame(news)def string_cleaner(x):    x = x.strip()    x = x.replace('.', '')    x = x.replace(' ', '')    return xnews_df['clean'] = news_df['Text'].apply(string_cleaner)apply用于在 pandas 系列对象上应用函数,最终返回类型是从所应用函数的返回类型推断出来的。因此,您可以考虑一次一个值列表传递给一个函数以转换这些值,在您的情况下,您将发送一个字符串列表来清理每个字符串。由于x是一个字符串,你正在应用的操作(条带,替换)直接工作,python字符串上没有.str操作。所以,它给出了一个错误。有一个 str 函数以这种方式用于 str(x) 将另一个 python 类型转换为字符串。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python