使用gropuby+agg分组+聚合函数做词频统计时报错SpecificationError: nested renamer is not supported
代码分析:
这段代码使用了pandas库来处理一个名为`df_all_words`的DataFrame。让我来逐步解释这段代码的含义:
1. `words_count=df_all_words.groupby(by=['all_words'])['all_words'].agg([("count","count")])`:这行代码根据`'all_words'`列对DataFrame `df_all_words`进行分组,然后使用`agg`函数计算该列中每个唯一值的出现次数。结果被存储在一个名为`words_count`的新DataFrame中,其中包含一个名为`'count'`的列,用于存储计数结果。
2. `words_count=words_count.reset_index().sort_values(by=["count"],ascending=False)`:这行代码对`words_count` DataFrame进行重新索引,并按照`'count'`列的值降序排序。这将使得出现次数最多的单词排在前面。
3. `words_count.head()`:这行代码显示`words_count` DataFrame的前几行,其中包含出现次数最多的单词及其对应的计数。
输出结果将取决于`df_all_words` DataFrame中的数据。
报错代码:
words_count=df_all_words.groupby(by=['all_words'])['all_words'].agg({"count":numpy.size})
words_count=df_all_words.groupby(by=['all_words'])['all_words'].agg({"count":numpy.size})
将代码修改为:
words_count=df_all_words.groupby(by=['all_words'])['all_words'].agg([("count","count")])
words_count=df_all_words.groupby(by=['all_words'])['all_words'].agg([("count","count")])
运行结果: