簡體   English   中英

對 pandas 中的特定列進行排序

[英]Sort specific columns in pandas

我有一個 dataframe (樣品看起來像這樣)

Type          SKU      Description   FullDescription        Size      Price
Variable       2        Boots          Shoes on sale       XL,M,S       
Variation      2.5      Boots XL                             XL       330
Variation      2.6      Boots M                              M        330
Variation      2.7      Boots S                              S        330
Variable       3        Boots           Helmet Sizes      E42,E41
Variation      3.8      Helmet E42                          E42       89
Variation      3.2      Helmet E41                          E41       89

我想要做的是根據大小對值進行排序,因此最終數據框應如下所示:

  Type          SKU      Description   FullDescription        Size      Price
    Variable       2        Boots          Shoes on sale       S,M,XL        
    Variation      2.7      Boots S                             S       330
    Variation      2.6      Boots M                             M        330
    Variation      2.5      Boots XL                            XL        330
    Variable       3        Boots           Helmet Sizes       E41,E42
    Variation      3.2      Helmet E41                          E41       89
    Variation      3.8      Helmet E42                          E42       89

我可以只使用sort_values()但我似乎找不到任何東西來保留類型和 SKU 的順序。 任何幫助,將不勝感激。

有點長

out = df.groupby(df.Type.eq('Variable').cumsum()).\
       apply(lambda x : pd.concat([x.iloc[[0]].assign(Size=lambda y : y['Size'].str.split(',').str[::-1].str.join(',')),
                        x.iloc[1:,].iloc[::-1]]))
Out[458]: 
             Type  SKU Description     Size  Price
Type                                              
1    0   Variable  2.0       Boots   S,M,XL    NaN
     3  Variation  2.7      BootsS        S  330.0
     2  Variation  2.6      BootsM        M  330.0
     1  Variation  2.5     BootsXL       XL  330.0
2    4   Variable  3.0       Boots  E41,E42    NaN
     6  Variation  3.2   HelmetE41      E41   89.0
     5  Variation  3.8   HelmetE42      E42   89.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM