簡體   English   中英

按升序排列列(月)

[英]Arrange the columns(month) in ascending order

1/ excel中的原始數據

我有一個包含這些數據值的數據框,如下所示: 在此處輸入圖像描述

2/ 編碼

將此 excel 加載到數據框中,編寫一個 pivot_table 代碼來索引類別並顯示每個月的交易計數。

這是代碼:

loadexpense_df = pd.read_excel("C:ExpensesTestData.xlsx")
month_df = pd.pivot_table(loadexpense_df,index="Category",columns="Month",aggfunc={"Month":len}, fill_value=0)

month_df的結果如下圖: 在此處輸入圖像描述

3/ 問題

我想按以下順序排列月份列:二月、三月、四月等。 這可能嗎?

謝謝指導

首先,查看您當前的列:

cols = month_df.columns.tolist()

我認為你的cols現在應該是這樣的:

[('Month', 'Apr'), ('Month', 'Aug'), ...]

所以你可以像這樣重新排序你的cols

month_names = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
cols = sorted(cols, key=lambda x: month_names.index(x[1]))

最后用新列排序設置months_df:

month_df = month_df[cols]

我認為它完成了。

您可以在此問題中閱讀有關重新排序列的更多信息。

國際大學聯盟:

您需要按照您想要的順序重新索引軸。 有一種稱為reindex_axis的方法

我假設你有列的名稱:

如果不:

column_list = month_df.columns.tolist()

使用以下方式訪問月份名稱:

column_list.index(x[1])

如果是

order_of_column = ['Feb', 'Mar', 'Apr','May', 'Jun', 'Jul', 'Aug']

month_df1 = month_df.reindex_axis(order_of_column, axis=1)

暫無
暫無

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

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