Python表示一列的矩阵,该列的矩阵值由相应的列表示
我有这些数据,比如d1:Python表示一列的矩阵,该列的矩阵值由相应的列表示,python,python-2.7,Python,Python 2.7,我有这些数据,比如d1: Fruits Person Mango 1 Banana 1 Orange 2 Mango 1 Banana 3 Orange 1 Mango 2 Banana 3 Orange 2 Mango 2 我希望输出如下: Fruit2 Fruit1 Mango Banana Orange Mango 2 0 2 Banana 0 Orange 一种矩阵,其中的值为已获
Fruits Person
Mango 1
Banana 1
Orange 2
Mango 1
Banana 3
Orange 1
Mango 2
Banana 3
Orange 2
Mango 2
我希望输出如下:
Fruit2
Fruit1 Mango Banana Orange
Mango 2 0 2
Banana 0
Orange
一种矩阵,其中的值为已获取
grout1
和grout2
的不同人数。有人能告诉我一种方法来做这件事吗。谢谢。在不知道您的数据集是什么类型时,我将放弃假设它是一个基于您所呈现结构的元组列表
因此,如果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')),
]
正如您所看到的,fourt2
是一个元组列表,与fourt1
一样,还添加了水果/人的出现次数。所以person1
有1个条目或Banana
,2个条目是Mango
,依此类推
它不完全是一个矩阵,但是,很难用提供的信息更具体。d1是什么类型的?列表、目录等。你是按每个人计算水果
还是按人计算水果
还是按人计算水果
?我是按不同的人计算水果对水果的数量。知道这一点会很有帮助。Person
在d1
中除了按类型划分的水果数量外,是否有任何不同的值?身份证、姓名等。不,不幸的是没有。将1,2,3等视为唯一的ID号。希望我能让你们明白,但这不是我所期望的。更重要的是,我想要一个交叉表,将水果子类别作为行和列,并将值与食用水果的不同人群相关联。我希望这更有意义。只是为了让它更清楚,我想要类似python中的链接。这是在R中完成的。