pandas中的UN排序值


BILLING_DATE          OOQ     AQ        SQ  BILLING_HOUR
26-06-2022             0      1       5       0
26-06-2022            22      25     02       8
26-06-2022            07      17     76       10
a=df.melt(['BILLING_DATE','BILLING_HOUR'],var_name='items',value_name=None).set_index(['BILLING_DATE','items','BILLING_HOUR']).squeeze().unstack().rename_axis(columns=None).fillna(0).astype(int).reset_index()

输出:

BILLING_DATE    items   0   8   10
0   26-06-2022      AQ  1   25  17
1   26-06-2022      OOQ 0   22  07
2   26-06-2022      SQ  07  17  76

但是我想:

BILLING_DATE    items   0   8   10
0   26-06-2022      OOQ 0   22  0
1   26-06-2022      AQ  1   25  17
2   26-06-2022      SQ  5   02  76

您可以根据列的原始顺序进行排序:

sorter = pd.Series({k:v for v,k in enumerate(df.columns)}).get
a = a.sort_values('items', key=sorter)

输出:

BILLING_DATE items  0   8  10
1   26-06-2022   OOQ  0  22   7
0   26-06-2022    AQ  1  25  17
2   26-06-2022    SQ  5   2  76

最新更新