wordfreq: DataFrame = pd.DataFrame(list(zip(word_dict.keys(), word_dict.values())), columns=['word', 'freq']) wordfreq.to_excel("wordfreq.xlsx",index=False) data["cutted_content"] = data.content.apply(wordfreq)报错,提示)pandas.errors.SpecificationError: nested renamer is not supported错误怎么修改,用的是nltk
时间: 2024-02-28 21:57:12 浏览: 419
这个错误出现的原因是因为在应用`wordfreq`函数时,`apply()`方法不能正确地处理函数返回的DataFrame对象。为了解决这个问题,您可以使用`apply()`方法的另一种形式,即`apply()`方法的参数`result_type='expand'`。这将使`apply()`方法返回一个包含DataFrame对象的数据帧,而不是一个包含Series对象的数据帧。
以下是相应的修改,您可以试试看:
```
def wordfreq(content):
word_dict = {}
cutted_content = jieba.cut(content)
for word in cutted_content:
if word in word_dict:
word_dict[word] += 1
else:
word_dict[word] = 1
return pd.DataFrame(list(zip(word_dict.keys(), word_dict.values())), columns=['word', 'freq'])
data["cutted_content"] = data.content.apply(wordfreq)
wordfreq = pd.concat([sub_df for sub_df in data['cutted_content']], ignore_index=True)
wordfreq.to_excel("wordfreq.xlsx", index=False)
```
这个修改将`wordfreq`函数定义在了apply()方法之外,并修改了返回的数据帧的形式。然后,您可以使用`pd.concat()`方法将所有的DataFrame对象合并为一个数据帧,并将其保存到Excel文件中。
希望这个修改可以帮到您。
阅读全文