我有一个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
如果想按第二层的唯一值排序,使用 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