计算列表列中元素的出现(有变种)

时间:2018-07-07 11:56:39

标签: python list pandas count

我要分析一列名为“ author_background”的列表。实际的列由8.000行组成。我的目的是概述(在该列的所有列表中)总共有多少个不同元素,并计算每个元素出现在多少个列表中。

我的专栏的样子:

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_counts。但是,因为它是列表,所以不可能。

还有另一种方法来计数每个元素的出现吗?

如果这样更有用:我还得到了一个包含列表中所有元素的列表(未嵌套)。

2 个答案:

答案 0 :(得分:1)

通过list flattening将其全部转换为一个系列:

pd.Series([bg for bgs in df.author_background for bg in bgs])

现在,您可以致电value_counts()以获得结果。

答案 1 :(得分:0)

您可以尝试:

public class Program
{
    public static void Main(string[] args)
    {
        var data = new List<string>() { "bill", "david", "john", "daviddd" };
        var stringsStartingWithD = data.Where (s => s.StartsWith("d")).ToList();    
    }