繁体   English   中英

使用具有常规月份顺序而不是字母顺序的交叉表后重新索引列

[英]Reindex columns after using crosstab with regular month order instead of alphabetic

使用交叉表后,我有以下 output,见附图:

在此处输入图像描述

我的问题如下:如何根据年份 position 而不是按字母顺序对列进行排序?

from calendar import month_abbr

df.reindex(columns=month_abbr[1:])

在内置的calendar模块中, month_abbr给出了月份的缩写。 然而,它的长度是 13,因为它在索引 0 处包含一个空字符串(以简化常规索引,如 3 用于 March 等)。 简而言之,您可以使用它在columns上重新索引您的数据框。

如果你想坚持使用pandas只需创建一个带有月份频率的年度 date_range 然后strftime来获取缩写。

import pandas as pd

cols = pd.date_range('2010-01-01', '2010-12-31', freq='MS').strftime('%b')
#Index(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 
#       'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']),

df = df.reindex(cols, axis=1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM