【发布时间】:2021-04-20 23:31:41
【问题描述】:
我有一个从这样的数据透视表创建的数据框:
| mykey | values1 | values2 | values3 |
|---|---|---|---|
| 1 | [1,2,0] | [2,3,5] | [2,3,4] |
| 3 | [2,1] | [3,1] | [2,1] |
我想按 values1 按升序对数据框中的列表进行排序,并将该排序反映在 values2 和 values3 的排序中,如下所示:
| mykey | values1 | values2 | values3 |
|---|---|---|---|
| 1 | [0,1,2] | [5,2,3] | [4,2,3] |
| 3 | [1,2] | [1,3] | [1,2] |
现在,我在创建数据透视表之前对数组的输入值进行了排序,这似乎可行,但我认为在创建数据透视表之后可能会有一种方法对其进行排序。
【问题讨论】:
-
这很棘手。您可以使用
numpy.argsort()获取对values1 进行排序的索引,然后将这些索引应用于values2 和values3。 -
排序的逻辑是什么?似乎每个单元格的逻辑顺序相反?
-
对不起,我不清楚。我编辑了上面的 OP。我想按 values1 升序排序。
-
值 2 和 3 怎么样?目前尚不清楚这些是如何分类的。编辑:我想现在我明白了。你是根据 values1 按每个项目的 INDEX/position 排序的。
-
我希望使用 values1 中的排序索引对它们进行相同的排序。我希望这是有道理的