如果我有像这样的(非常小的例子)
这样的DataFrame col1 col2
0 a 1
1 a 2
2 b 1
3 b 2
4 b 4
5 c 1
6 c 2
7 c 3
我希望所有col2
值与其唯一col1
值相关时的交集(所以在这种情况下,交点将是[1,2]
),我该怎么办?熊猫?另一种说法是col2
中col1
中每个唯一值存在的值col1
。
我的(错误的)解决方案是使用unique
获取唯一的col1
元素,然后从RelativeLayout
中的每个唯一元素构建字典,然后执行这些字典值的集合交集。我觉得我应该使用一种机制来将列相关联,但这可以使这更容易。
答案 0 :(得分:2)
一种方法是使用pivot_table
:
In [11]: cross = df.pivot_table(index="col1", columns="col2", aggfunc='size') == 1
In [12]: cross
Out[12]:
col2 1 2 3 4
col1
a True True False False
b True True False True
c True True True False
In [13]: cross.all()
Out[13]:
col2
1 True
2 True
3 False
4 False
dtype: bool
In [14]: cross.columns[cross.all()]
Out[14]: Int64Index([1, 2], dtype='int64', name='col2')
答案 1 :(得分:1)
另一种解决方案:
NewItemPlaceholder