Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按升序排列列(月)_Python_Dataframe - Fatal编程技术网

Python 按升序排列列(月)

Python 按升序排列列(月),python,dataframe,Python,Dataframe,1/excel中的原始数据 我有一个包含这些数据值的数据框,如下所示: 2/编码 将此excel加载到数据框中,编写pivot_表代码以索引类别并显示每个月的事务计数 代码如下: loadexpense_df = pd.read_excel("C:ExpensesTestData.xlsx") month_df = pd.pivot_table(loadexpense_df,index="Category",columns="Month",aggfunc={"Month":len}, fill

1/excel中的原始数据

我有一个包含这些数据值的数据框,如下所示:

2/编码

将此excel加载到数据框中,编写pivot_表代码以索引类别并显示每个月的事务计数

代码如下:

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)
每月的结果如下所示:

3/问题

我想把月份按如下顺序排列:二月、三月、四月等等。这可能吗


感谢您的指导

首先,请参阅您当前的专栏:

cols=month\u df.columns.tolist()
我认为您的
cols
现在应该是这样的:

[('Month','Apr'),('Month','Aug'),…]
因此,您可以按如下方式重新排列
cols

month_name=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”]
cols=sorted(cols,key=lambda x:month\u names.index(x[1]))
最后使用新列顺序设置月数:

month_df=month_df[cols]
我想已经完成了

您可以在中阅读有关列重新排序的更多信息。

IIUC:

您需要按照所需的顺序重新为轴编制索引。有一种方法称为
reindex\u axis

我假设您有列的名称:

如果否:

column_list = month_df.columns.tolist()
order_of_column = ['Feb', 'Mar', 'Apr','May', 'Jun', 'Jul', 'Aug']

month_df1 = month_df.reindex_axis(order_of_column, axis=1)
使用以下命令访问月份名称:

column_list.index(x[1])
如果是

column_list = month_df.columns.tolist()
order_of_column = ['Feb', 'Mar', 'Apr','May', 'Jun', 'Jul', 'Aug']

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

你的专栏名称是二月、三月、四月吗?谢谢你的指导。花了一些时间来理解lamda语法,并设法编写了一个3行代码,以获得与lamda相同的结果。好的。谢谢