对 pandas 数据框中集群的子集群中的行进行排序

Prm*_*ake 3 python group-by pandas

我有一个数据框如下:

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
Run Code Online (Sandbox Code Playgroud)

每个部分都是一个簇,部分内的每个日期都是一个子簇。我想根据以下原则对每个日期的每个零件的数量值进行排序:首先是正值。结果应该是:

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
Run Code Online (Sandbox Code Playgroud)

可以使用某种双 groupby,或者我应该寻找不同的解决方案?

Pau*_*ulS 6

另一种可能的解决方案,使用布尔列表来定义几种排序顺序:

df.sort_values(['Part', 'Date', 'Quantity'], ascending=[True, True, False])
Run Code Online (Sandbox Code Playgroud)

输出:

  Part        Date  Quantity
1    A  2023-10-26         1
0    A  2023-10-26        -1
2    A  2023-11-03         1
3    A  2023-12-15        -1
4    B  2023-11-09         2
6    B  2023-11-14         2
5    B  2023-11-14        -2
7    B  2023-11-19         2
Run Code Online (Sandbox Code Playgroud)