如何创建不同列中值的所有值对组合的频率表

说我们有:

data = {'Column 1':     [ 1 , 3 , 4 , 1 , 3 , 2 , 3], 
        'Column 2':     [ 3 , 2 , 2 , 3 , 3 , 3 ,''], 
        'Column 3':     [ 3 , 2 , 3 , 1 , 3 , '',''],
        'Column 4':     [ 4 , 2 , 6 , 4 , 2 , '',''],
        'Column 5':     [ 1 , '', '', 4 , 2 , '',''],
        'Column 6':     [ '', '', '', '', 2 , '','']}

df = pd.DataFrame(data=data)

我需要创建一个频率表,以显示每一行中唯一项的所有组合。即使它们的顺序不同,也必须对它们进行计数。

co1 co2 co3 co4 co5 co6
 1   3   3   4   1
 3   2   2   2
 4   2   3   6
 1   3   1   4   4
 3   3   3   2   2   2
 2   3
 3

结果:

Combination    frequency
[3]            1
[2,3]          3
[1,3,4]        2
[2,3,4,6]      1

我假设我必须将这十列变成一列,每一行都作为一个列表。然后,我必须仅保留唯一的列表对象,并对每个列表进行排序。然后,我只使用.value(counts)。我只是不知道命令。

For i in cols:
    #command that consolidates columns into one column with a list of the column items
    #command that removes non unique
    #command that sorts each list of each row
result.value(counts)
评论