Python 统计列表列中元素的出现次数(扭曲)
我有一列名为“作者背景”的列表,我想对其进行分析。实际列由8.000行组成。我的目标是了解总共有多少不同的元素(在列的所有列表中),并计算每个元素出现在其中的列表数量 我的专栏是什么样子的:Python 统计列表列中元素的出现次数(扭曲),python,list,pandas,count,Python,List,Pandas,Count,我有一列名为“作者背景”的列表,我想对其进行分析。实际列由8.000行组成。我的目标是了解总共有多少不同的元素(在列的所有列表中),并计算每个元素出现在其中的列表数量 我的专栏是什么样子的: df.author_background 0 [Professor for Business Administration, Harvard Business School] 1 [Professor for Industrial Engineering, University of Oakl
df.author_background
0 [Professor for Business Administration, Harvard Business School]
1 [Professor for Industrial Engineering, University of Oakland]
2 [Harvard Business School]
3 [CEO, SpaceX]
desired output
0 Harvard Business School 2
1 Professor for Business Administration 1
2 Professor for Industrial Engineering 1
3 CEO 1
4 University of Oakland 1
5 SpaceX 1
我想知道“工商管理教授”、“工业工程教授”、“哈佛商学院”等在专栏中出现的频率。我不知道还有很多标题
基本上,我想对列使用pd.value\u计数。但是,这是不可能的,因为它是一个列表。
是否有其他方法计算每个元素的出现次数
如果这更有帮助的话:我还得到了一个列表,其中包含列表的所有元素(不是嵌套的)。您可以尝试这样做:
el = pd.Series([item for sublist in df.author_background for item in sublist])
df = el.groupby(el).size().rename_axis('author_background').reset_index(name='counter')
通过以下方式将其全部转换为单个系列:
现在,您可以调用
value\u counts()
来获得结果。实际数据是否总是像您的示例一样长度为1的列表?不幸的是,不是。有些列表只包含1个元素,其他列表最多包含4个元素。您能否显示最后一行中所写内容的示例@汉娜:当然。我刚刚使用.sum()来获取非嵌套列表:df.author\u background.sum()非常感谢!很好用
pd.Series([bg for bgs in df.author_background for bg in bgs])