将数据帧输出到CSV时标题的一致顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将数据帧输出到CSV时标题的一致顺序相关的知识,希望对你有一定的参考价值。

我正在遍历JSON响应并将每个元素附加到Python中的Pandas DataFrame。

在循环结束时,我将DataFrame输出到CSV。但是,每次我输出CSV时,标题都是不一致的,因为列的顺序似乎有所变化。

如何使标题(和列)的顺序每次保持一致?请在下面查看我正在使用的代码:

    output = pd.DataFrame()
    for item in json_resp:
        json_struct = 
            'col_1':json_resp['data'],
            'col_2':json_resp['data_2'],
            'col_2':json_resp['data_2']
        
        output = output.append(json_struct, ignore_index=True)
    output.to_csv('csv_output.csv', index=False, encoding='utf-8-sig')
答案

您可以使用列表指定要保存到to_csv的列。例如

output.to_csv('csv_output.csv', columns=['col_1', 'col_2', 'col_3'], headers=True, index ... 

也请检出Pandas Writing Dataframe Columns to csv

另一答案

函数to_csv按照您提供的顺序保存列。您可以在插入时或保存之前对列进行排序:

# Upon inserting - slow
output = output.append(json_struct, ignore_index=True, sort=True)

# Before saving, with known column names
output = output[['col_1', 'col_2', 'col_3']]

# Before saving, with unknown column names
output = output.sort_index(axis=1)

以上是关于将数据帧输出到CSV时标题的一致顺序的主要内容,如果未能解决你的问题,请参考以下文章

model.predict(keras)输出中的类的顺序是啥?

是否可以以相同或不同的顺序将具有相同标题或标题子集的多个 csv 文件读取到 spark 数据帧中?

循环遍历多个 panda 数据帧以在 Python 中获取多个数据帧输出

删除重复数据 且输出数据与输入数据一致

除了所有输入数据之外,将 re.findall() 输出到 CSV

需要有关使用 PL/SQL 以动态方式将表数据输出到 CSV 的想法