簡體   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