使用 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'])
输入数据 这是我来自每个数组的输入数据,我需要它各自的计数,如果它不存在,那么 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'])