我構建了一個執行多個清理操作的函數,但是當我在對象列上運行它時,我得到屬性錯誤:'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
提交
取消