我想将数据框分组为两列,然后对组内的聚合结果进行排序.
In [167]:
df
Out[167]:
count job source
0 2 sales A
1 4 sales B
2 6 sales C
3 3 sales D
4 7 sales E
5 5 market A
6 3 market B
7 2 market C
8 4 market D
9 1 market E
In [168]:
df.groupby(['job','source']).agg({'count':sum})
Out[168]:
count
job source
market A 5
B 3
C 2
D 4
E 1
sales A 2
B 4
C 6
D 3
E 7
Run Code Online (Sandbox Code Playgroud)
我现在想在每个组中按降序对count列进行排序.然后只占前三行.得到类似的东西:
count
job …Run Code Online (Sandbox Code Playgroud) 我有一个numpy的数组。什么是计算排序的所有排列的最快方法。
我的意思是,给定数组中的第一个元素,我想要一个依次排列的所有元素的列表。然后给定第二个元素,其后的所有元素的列表。
因此,给出我的列表:b,c和d跟随a。c&d跟随b,而d跟随c。
x = np.array(["a", "b", "c", "d"])
Run Code Online (Sandbox Code Playgroud)
因此,潜在的输出如下所示:
[
["a","b"],
["a","c"],
["a","d"],
["b","c"],
["b","d"],
["c","d"],
]
Run Code Online (Sandbox Code Playgroud)
我将需要做几百万遍,因此我正在寻找一种有效的解决方案。
我尝试了类似的东西:
im = np.vstack([x]*len(x))
a = np.vstack(([im], [im.T])).T
results = a[np.triu_indices(len(x),1)]
Run Code Online (Sandbox Code Playgroud)
但实际上比循环慢...