使用 python 获取对应于每一行的数组元素的值计数

getting value count of a an array element respective to each row with python

输入数据 这是我来自每个数组的输入数据,我需要它各自的计数,如果它不存在,那么 0 将是

   ID                     array
0  20  [1, 2, 1, 1, 2, 3, 4, 5]
1  34     [1, 2, 2, 3, 4, 6, 7]
2  55        [6, 8, 9, 2, 1, 6]
3  66        [3, 4, 7, 7, 8, 1]

输出

    ID        array              1  2   3   4   5   6   7   8  9
0   20  [1, 2, 1, 1, 2, 3, 4, 5] 3  2   1   1   1   0   0   0  0
1   34  [1, 2, 2, 3, 4, 6, 7]    1  2   1   1   0   1   1   0  0
2   55  [6, 8, 9, 2, 1, 6]  1    1  1   0   0   0   1   0   1  1 
3   66  [3, 4, 7, 7, 8, 1]  1    0  0   1   1   0   0   2   1  0

您可以对数据集的每一行使用这行代码:

[name_list.count(element) for element in range(1,10)]

其中 list_name 是您要作为参数传递并计算重复次数的列表

IIUC,这是一种方式 pandas:

df1 = df.explode('array')
df = pd.crosstab(df1['ID'], df1['array'])