Python使用排序索引写入Excel

Python使用排序索引写入Excel,python,sorting,dictionary,export-to-excel,Python,Sorting,Dictionary,Export To Excel,我已经编写了python代码,并且正在尝试将矩阵写入Excel。 我用python创建了一个dict,并使用DataFrame来构造矩阵。 问题是,python中的词典无法排序。同样地,当我写进Excel时,我得到了一个没有排序的矩阵 from pandas import DataFrame import pandas as pd list = ['6M', '1yr', '2yr', '10yr', '30yr'] Corr = {} for line in list: for

我已经编写了python代码,并且正在尝试将矩阵写入Excel。 我用python创建了一个dict,并使用DataFrame来构造矩阵。 问题是,python中的词典无法排序。同样地,当我写进Excel时,我得到了一个没有排序的矩阵

from pandas import DataFrame 
import pandas as pd

list = ['6M', '1yr', '2yr', '10yr', '30yr']

Corr = {}
for line in list:
    for line2 in list:
        ##  actual calculation is more complicated 
        ## I just show a simple example to illustrate the problem
        Corr.setdefault(line,{}).update({line2: 1})
    
df = DataFrame(Corr)

writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
输出类似于


它不是按索引排序的。

正如您所说,Python中的字典是不排序的。幸运的是,有一个模块可以帮助-。从文档中:

OrderedDict是一种记录键首次插入顺序的dict

要使用它,只需
导入集合
并将
Corr={}
替换为
Corr=collections.orderedict()


词典现在将保留条目的顺序,您可以像以前一样导出它。

非常感谢。这很有帮助。