大家好,所以这是问题所在,我有一个像这样的DataFrame:
item_id item_title item_content title_trans content_trans 0 1 "First" "Stuff" NaN NaN ... ... ... ... ... 99 100 "Last" "More stuff" NaN NaN
我打算做的是对title和content列应用翻译,将输出保存到其各自的最后一列。 (翻译将通过TextBlob或python翻译完成)。 输出应如下所示:
item_id item_title item_content title_trans content_trans 0 1 "First" "Stuff" "Primera" "Cosas" ... ... ... ... ... 99 100 "Last" "More stuff" "Última" "Más cosas"
我的最新想法是使用DataFrame.iterrows()创建for,并使用iloc保存每个输出,有点像这样:
for index, item in DataFrame.iterrows():
raw_text = '\n'.join(item['item_title'], item['item_content'])
trans_text = str(TextBlob(raw_text).translate(to='es'))
title, content = trans_text.split('\n')
DataFrame.iloc(index, 'title_trans') = title
DataFrame.iloc(index, 'content_trans') = content
这对于小型数据集有多好,如果我将其应用于海量数据集(数千个),我将看到它如何开始变慢。有没有比for循环更喜欢映射它的方法呢?
答案 0 :(得分:1)
尝试使用apply
:
df['title_trans'] = df['item_title'].apply(lambda x: str(TextBlob(x).translate(to='es')))
df['content_trans'] = df['item_content'].apply(lambda x: str(TextBlob(x).translate(to='es')))