用于在 Excel 中导出的嵌套字典的顺序或 pandas 列的顺序 [重复]

Posted

技术标签:

【中文标题】用于在 Excel 中导出的嵌套字典的顺序或 pandas 列的顺序 [重复]【英文标题】:Order of nested dictionaries or order of pandas columns for exporting in Excel [duplicate] 【发布时间】:2018-10-13 10:46:37 【问题描述】:

我想将嵌套字典中包含的某些数据导出到 PD 数据框,然后导出到 Excel:

counter=0
for m in [3]:
for column, wind_speed in enumerate(wind_speeds):
    for row,ti in enumerate(TIs): 
        if ~np.isnan(Mx_m_3[row,column]): 
            exec("dtb_dict.update("+str(counter)+":'case': '12', 
'WindSpeed': wind_speed, 'TI':ti, 
list_of_variables[0]:"+list_of_variables[0]+"[row,column], 
list_of_variables[1]:"+list_of_variables[1]+"[row,column])")
            counter+=1


a=pd.DataFrame.from_dict(i: dtb_dict[i]
                       for i in dtb_dict.keys() 
                       for j in dtb_dict[i].keys(),
                   orient='index')


writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')

我想要一个数据框,其中的列按大小写顺序排列,风速,ti,list_of_variables[0],list_of_variables[1]

我得到: 案例, 风, 速度, list_of_variables[1], list_of_variables[0], ti

有没有办法指定嵌套字典的顺序或重新排列数据框?

谢谢!

【问题讨论】:

【参考方案1】:

您可以轻松地为 pandas DataFrame 执行此操作。

假设我们从

a = pd.DataFrame("case": list(range(10)), "wind,speed": list(range(10)), "list_of_variables[1]": list(range(10)), "list_of_variables[0]":list(range(10)), "ti": list(range(10)))

然后

a = a[["case", "wind,speed", "ti", "list_of_variables[0]", "list_of_variables[1]"]]

将按照您的意愿对您的列进行排序。

【讨论】:

以上是关于用于在 Excel 中导出的嵌套字典的顺序或 pandas 列的顺序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

icCube - 如何修改将在 Excel 文件中导出的信息

如何一次对字典或列表中的所有嵌套字典和列表进行排序?

如何使用熊猫规范化来自excel文件的嵌套字典数据

从嵌套字典列表生成 excel 文件

从嵌套字典中返回密钥excel vba

数据库视图