Python 按升序排列列(月)
1/excel中的原始数据 我有一个包含这些数据值的数据框,如下所示: 2/编码 将此excel加载到数据框中,编写pivot_表代码以索引类别并显示每个月的事务计数 代码如下: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
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相同的结果。好的。谢谢