我有一个框架如下:
Part Date Quantity
A 2023-10-26 -1
A 2023-10-26 1
A 2023-11-03 1
A 2023-12-15 -1
B 2023-11-09 2
B 2023-11-14 -2
B 2023-11-14 2
B 2023-11-19 2
字符串
每个部件都是一个簇,部件中的每个日期都是一个子簇。我想根据以下条件对每个部件的每个日期的数量值进行排序:首先是正值。结果应该是:
Part Date Quantity
A 2023-10-26 1
A 2023-10-26 -1
A 2023-11-03 1
A 2023-12-15 -1
B 2023-11-09 2
B 2023-11-14 2
B 2023-11-14 -2
B 2023-11-19 2
型
可以使用某种双groupby,或者我应该寻找不同的解决方案?
3条答案
按热度按时间nbnkbykc1#
另一种可能的解决方案,它使用布尔列表来定义几个排序顺序:
字符串
输出量:
型
qacovj5a2#
在
DataFrame.sort_values
中使用key
参数,通过Series.lt
或Series.le
比较,为False
指定列Quantity
,以获得正值:字符串
cclgggtu3#
如果你想对所有值进行排序,那么
numpy.lexsort
是非常有效的:字符串
如果你真的想对组内的值进行排序,而不是修改组,那么你需要一个
groupby.apply
:型
输出量:
型