问题描述
例如,以下两列将是唯一的,因为合并后的两列没有重复项,即使列本身内有重复项。
>>> c0 c1
0 1 1
1 1 2
3 2 2
然而,这些列在这个意义上并不是唯一的:
>>> c0 c1
0 3 1
1 2 2
3 1 3
这对于带有 unique
kwarg 的 single column 是可能的——但是如何生成多个唯一的列并不明显。例如,这对于生成多索引很有用。是否有任何人都知道的现成的好的解决方法?
解决方法
根据您问题中的示例,我认为您的意思是“没有行是任何其他行的排列的列”。
(你的第二个例子也满足了更简单的“这样没有重复的行”)
在这种情况下,我可能会转向基本的 lists()
策略:
lists(
elements=tuples(integers(),integers()),# elements for each column
unique_by=lambda row: tuple(sorted(row)) # or otherwise canonicalise
).map(turn_into_a_dataframe)