抱歉,题目不太好,问题可能更糟。你知道吗
我需要对pandas数据帧执行一个超级简单的操作,但我显然缺少如何调用它,因此无法找到要搜索的正确关键字。你知道吗
给定一个数据帧
a b c
0 0 46 14
1 0 7 14
2 0 46 19
3 0 7 19
4 1 46 14
5 1 7 14
6 1 46 19
7 1 7 19
我需要重新排序行以获得
a b c
0 0 46 14
4 1 46 14
1 0 7 14
5 1 7 14
2 0 46 19
6 1 46 19
3 0 7 19
7 1 7 19
另一个简单的,也许不那么模棱两可的例子。我想从
a
0 0
1 0
2 1
3 1
4 2
5 2
至
a
0 0
2 1
4 2
1 0
3 1
5 2
编辑:对整个图片进行一些澄清
值得一提的是,第一个示例中的数据帧是字典的笛卡尔积
'a': [0, 1], 'b': array([46, 7]), 'c': array([14, 19])}
即
[{'a': 0, 'b': 46, 'c': 14},
{'a': 0, 'b': 7, 'c': 14},
{'a': 0, 'b': 46, 'c': 19},
{'a': 0, 'b': 7, 'c': 19},
{'a': 1, 'b': 46, 'c': 14},
{'a': 1, 'b': 7, 'c': 14},
{'a': 1, 'b': 46, 'c': 19},
{'a': 1, 'b': 7, 'c': 19}]
我需要对它进行排序,以便为每个参数组合将所有a
值分组并循环在一起。你知道吗
如果要进行排序,使看到值的第0次都排在第一位,然后是第1次,依此类推,可以按感兴趣的列进行分组,并对累计计数进行排序:
这是因为
请注意,我们使用
kind='mergesort'
来保证稳定性,如果需要,您可以先对原始帧排序,如果您想打开[1, 2, 2, 0, 0, 1]
->;[0, 0, 1, 1, 2, 2]
->;[0, 1, 2, 0, 1, 2]
。你知道吗通过在开始时创建不同的
DataFrame
,可以跳过所有的重新排序。您可以使用np.tile
和np.repeat
的组合,而不是仅仅使用itertools.product
。你知道吗相关问题 更多 >
编程相关推荐