在Python中按选择对数据帧列排序

在Python中按选择对数据帧列排序,python,pandas,csv,dataframe,Python,Pandas,Csv,Dataframe,我的代码通过XML文件运行并解析某些数据。我正在使用pandas来组织、设置数据帧并写入CSV,如下所示: data = {"Name":inv_names, "Publication Date":date_pub, "Document Number":doc_num, "Patcit":name_citation, "Npatcit":data2, "Country":data3, "MainClass":data13}

我的代码通过XML文件运行并解析某些数据。我正在使用pandas来组织、设置数据帧并写入CSV,如下所示:

                    data = {"Name":inv_names, "Publication Date":date_pub, "Document Number":doc_num, "Patcit":name_citation, "Npatcit":data2, "Country":data3, "MainClass":data13}

                    df = pd.concat([df, pd.DataFrame(data)])

                    with open("./output.csv", "a", encoding = 'utf-8') as f:

                        df.to_csv(f, index = False)
这将打印到CSV文件,如下所示:

Country Document Number MainClass   Name    Npatcit Patcit  Publication Date
我真正想做的就是重新排序这些数据,如:

Name   Publication Date  Document Number ..... (just like the order given by data above)

可能是一个简单的例子,但我尝试过按不同类型对df.sort_values()进行排序,但似乎没有任何效果。

您可以手动对列重新排序

df = df[['Name','Publication Date','Document Number'....]]

另一个建议是不要使用常规dict对象,因为key:value对的顺序没有保留。您可以使用OrderedICT(从集合导入OrderedICT),它将保留键:值顺序。