Форматирование файла CSV Я сортирую - PullRequest
0 голосов
/ 10 октября 2018

Я сейчас сортирую CSV-файл.Насколько мой вывод, это правильно, но он не отформатирован должным образом.Ниже приведен файл, который я сортирую enter image description here

А вот вывод после сортировки (я добавлю код после изображения) enter image description here

Очевидно, у меня проблема с разделителем, но вот мой код:

with open(out_file, 'r') as unsort:##Opens OMI Data
    with open(Pandora_Sorted,'w') as sort:##Opens file to write to
        for line in unsort:
            if "Datetime" in line:##Searches lines
                writer=csv.writer(sort, delimiter = ',')
                writer.writerow(headers)##Writes header
            elif "T13" in line:
                writer=csv.writer(sort)
                writer.writerow(line)##Writes to output file

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

Вам нужно четко указать разделитель для писателя?

Здесь во второй строке вашего elif:

elif "T13" in line:
    writer=csv.writer(sort, delimiter = ',')
    writer.writerow(line)  # Writes to output file
0 голосов
/ 10 октября 2018

Для предоставленного кода заголовок также будет иметь форматирование, аналогичное другим строкам, из-за следующей строки:

writer=csv.writer(sort, delimiter = ',')

Использование pandas может использоваться для сортировки в порядке возрастания по списку столбцов,list_of_columns

import csv
import pandas as pd 

input_csv = pd.read_csv(out_file, sep=',')
input_csv.sort_values(by=list_of_columns, ascending=True)
input_csv.to_csv(Pandora_Sorted, sep=',')

, например, list_of_columns может быть

list_of_columns = ['Datetime', 'JulianDate', 'repetition']
0 голосов
/ 10 октября 2018

Я думаю, что проще прочитать файл csv во фрейм данных pandas и отсортировать, пожалуйста, проверьте ниже пример кода.

import pandas as pd
df = pd.read_csv(input_file)
df.sort_values(by = ['Datetime'], inplace = True)
df.to_csv(output_file)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...