【发布时间】:2018-08-08 06:44:10
【问题描述】:
我有以下数据集:
d = {
'Company':['A','A','A','A','B','B','B','B','C','C','C','C','D','D','D','D'],
'Individual': [1,2,3,4,1,5,6,7,1,8,9,10,10,11,12,13]
}
现在,我需要在 Python 中创建一个列表,其中包含“公司”的所有元素对,它们对应于“个人”中的值。
例如对于上述数据集,上述输出应如下所示: ((A,B),(A,C),(B,C),(C,D))。前三个元组,因为个体 1 隶属于 A、B 和 C 和最后一个,个人 10 隶属于 C 和 D。
进一步解释 - 如果 individual =1,则上述数据集具有“A”、“B”和“C”值。现在,我想创建这三个值(元组)的所有唯一组合,因此它应该创建一个包含元组(A,B),(A,C)和(B,C)的列表。接下来是个人=2。这里只有值'A',因此没有要附加到列表的元组。对于接下来的个人,每个人只有一个对应的公司,因此没有其他配对。唯一需要添加的其他元组是 Individual=10,因为它具有值 'C' 和 'D' - 因此应该将元组 (C,D) 添加到列表中。
【问题讨论】:
-
你能澄清一下“'Company' 如果 Individual=1 的所有组合”
-
当然可以。如果 individual =1,则上述数据集只有“A”和“B”值。现在,我想创建这两个值(元组)的所有唯一组合,因此它应该使用元组(A,B)创建一个列表。接下来是个人=2。这里只有值'A',因此没有要附加到列表的元组。接下来是个人“3”,其公司值为“A”和“C”。因此它应该将 (A,C) 添加到列表中。等等。
-
@JanOhlenbusch,我为细化问题添加了单独的答案。
标签: python pandas numpy dictionary combinations