在大熊猫中解叠时要保持顺序。

问题描述 投票:0回答:1

我有一个DataFrame,其中索引是一个 DatetimeIndex

应用每个月的value_counts()。

NameCount = df.resample("M")["Name"].value_counts()

Date          Name

2019-12-31    Tom                   200
              Alle                  185
              Will                  93
              Jeff                  90
              Jerry                 68

2020-03-31    Alle                  629
              Jame                  385
              Will                  233
              Jerry                 113
              Tom                   99

解除堆栈后的结果会重新排列。Name 按字母顺序排列。

NameCount.unstack().rename(lambda  x: x.strftime("%b %Y"))

有什么办法能让我保持顺序不乱?value_counts 在那里,它被安排在一个 descending order

python pandas dataframe datetime pandas-groupby
1个回答
0
投票

如果想按第二层的唯一值排序,使用 DataFrame.reindex:

c = NameCount.index.get_level_values(1).unique()
df = NameCount.unstack().rename(lambda  x: x.strftime("%b %Y")).reindex(columns=c)

print (df)
Nam         Tom   Alle   Will  Jeff  Jerry   Jame
Date                                             
Dec 2019  200.0  185.0   93.0  90.0   68.0    NaN
Mar 2020   99.0  629.0  233.0   NaN  113.0  385.0
© www.soinside.com 2019 - 2024. All rights reserved.