【问题标题】:Hypothesis strategy for multiple pandas series/columns with no duplicates没有重复的多个熊猫系列/列的假设策略
【发布时间】:2021-04-11 20:27:07
【问题描述】:

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

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

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

然而,从这个意义上说,这些列并不是唯一的:

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

这对于single columnunique kwarg 是可能的——但是如何生成多个唯一的列并不明显。例如,这对于生成多索引很有用。是否有任何人都知道的好的现成解决方法?

【问题讨论】:

  • 当你说“多列是唯一的”时,在什么方面是唯一的?没有一列等于另一列?没有一列包含另一列中的任何元素?还有什么?
  • 好点——我已经澄清了我在问题中的意思。

标签: python pandas unique python-hypothesis


【解决方案1】:

根据您问题中的示例,我认为您的意思是“没有行是任何其他行的排列的列”。

(你的第二个例子也满足了更简单的“没有重复的行”)

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

【讨论】:

  • 非常感谢!我很欣赏你在这个项目中所做的工作! :)
猜你喜欢
  • 2017-06-13
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 2013-09-24
  • 2017-01-16
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多