不知道你的數據集是什麼type
,我假設它是基於你提供的結構的元組列表。
因此,如果fruit1
是元組列表,並且每個元組包含水果的名稱和人員的ID。使用列表理解,你可以指望的次數水果和人一起出現的,就像這樣:
import itertools
fruit1 = [
('Mango', 1),
('Banana', 1),
('Orange', 2),
('Mango', 1),
('Banana', 3),
('Orange', 1),
('Mango', 2),
('Banana', 3),
('Orange', 2),
('Mango', 2),
]
# define sort order (person, fruit)
keyfunc = lambda t: (t[1], t[0])
# sort fruit1
fruit1.sort(key=keyfunc)
# create fruit2
fruit2 = [(len(list(val)), key) for (key, val) in itertools.groupby(fruit1, keyfunc)]
# output
[
(1, (1, 'Banana')),
(2, (1, 'Mango')),
(1, (1, 'Orange')),
(2, (2, 'Mango')),
(2, (2, 'Orange')),
(2, (3, 'Banana')),
]
正如你可以看到fruit2
是一個元組列表,就像fruit1
與另外出現的次數的爲水果/人。因此,Person 1
有1個條目或Banana
,2對於Mango
,依此類推......
它不完全是一個矩陣,但是,它很難對所提供的信息更加具體。
什麼'type'是d1?列表,字典等 – Drewness
你是否在計算'水果'每個人'或'Furit'到'水果'? –
我正在計算不同水果的水果。 – user3371626