我构建了一个执行多个清理操作的函数,但是当我在对象列上运行它时,我得到属性错误:'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)
1 回答
繁星coding
TA贡献1797条经验 获得超4个赞
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 x
news_df['clean'] = news_df['Text'].apply(string_cleaner)
apply用于在 pandas 系列对象上应用函数,最终返回类型是从所应用函数的返回类型推断出来的。因此,您可以考虑一次一个值列表传递给一个函数以转换这些值,在您的情况下,您将发送一个字符串列表来清理每个字符串。
由于x是一个字符串,你正在应用的操作(条带,替换)直接工作,python字符串上没有.str操作。所以,它给出了一个错误。有一个 str 函数以这种方式用于 str(x) 将另一个 python 类型转换为字符串。
添加回答
举报
0/150
提交
取消