无重复的多个系列/列的假设策略

2024-10-02 00:41:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想定义一个策略来生成多个行唯一的pandas列

例如,以下两列将是唯一的,因为组合的两列没有重复项,即使列本身中存在重复项

>>> c0 c1
0   1  1
1   1  2
3   2  2

但是,从这个意义上讲,这些列不是唯一的:

>>> c0 c1
0   3  1
1   2  2
3   1  3

对于带有uniquekwarg的single column来说,这是可能的——但如何生成多个唯一的列并不明显。例如,这对于生成多索引非常有用。是否有一个大家都知道的好的现成解决方法


Tags: 方法pandas定义column策略意义singlec1
1条回答
网友
1楼 · 发布于 2024-10-02 00:41:30

根据你问题中的例子,我认为你的意思是“列,这样就没有行是任何其他行的排列”

(第二个示例也满足了更简单的“确保没有重复行”的要求)

在这种情况下,我可能会转向基本的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)

相关问题 更多 >

    热门问题