我能找到的所有其他答案都专门提到了在列表列表中聚合所有嵌套列表,而我希望为每个列表单独聚合。
我目前有一个列表列表:
master_list = [[a,a,b,b,b,c,c,c], [d,d,d,a,a,a,c,c,c], [c,c,c,a,a,f,f,f]]
我想通过循环为每个列表返回一个字典或 Counter() 对象:
counter1 = {'a': 2, 'b': 3, 'c': 3}
counter2 = {'d': 3, 'a': 3, 'c': 3}
counter3 = {'c': 3, 'a': 2, 'f': 3}
目前,我正在使用循环返回看起来像这样的东西 - 这并不完全是我想要的,因为它全部集中在一起,并且我在单独访问计数器对象时遇到了麻烦:
Input:
count = Counter()
for lists in master_list:
for words in lists:
count[words] += 1
Output:
Counter({'a': 2, 'b': 3, 'c': 3})
Counter({'d': 3, 'a': 3, 'c': 3})
Counter({'c': 3, 'a': 2, 'f': 3})
上面的问题是,我似乎无法找到一种方法来单独获取每个计数器,因为我试图为每个字典/计数器对象创建一个 pandas 数据帧。我试图以编程方式执行此操作,因为我的“master_list”中有数百个列表,并且我想返回一个数据帧,该数据帧显示每个单独列表的元素频率。最后,我将为“主列表”中的每个列表都有一个单独的数据框和计数器对象
目前我有一些只返回 1 个数据帧的东西:
Input:
table = pandas.DataFrame(count.items())
table.columns = ['Word', 'Frequency']
table.sort_values(by=['Frequency'], ascending = [False])
Output:
Word Frequency
the 542
and 125
or 45
. .
. .
. .
. .
任何见解将不胜感激 - 另外,任何有关单独处理 Counter() 对象的提示也将不胜感激。