Как отсортировать csv файл python

Python: сортировка a csv по столбцу

Это то, что у меня есть до сих пор:

Я создаю csv, который выглядит следующим образом:

Я пытаюсь отсортировать CSV буквенно-цифровым способом по первому столбцу, но не могу заставить оператор sortedlist работать.

1 ответ

Я хочу отсортировать таблицу CSV по дате. Сначала это была простая задача: import sys import csv reader = csv.reader(open(files.csv), delimiter=;) for id, path, title, date, author, platform, type, port in reader: print date Я использовал модуль Python CSV для чтения в файле с такой структурой.

У меня есть скрипт python, который генерирует кучу данных в while loop. Мне нужно записать эти данные в файл CSV, чтобы он записывал по столбцу, а не по строке. Например в цикле 1 моего скрипта я генерирую: (1, 2, 3, 4) Мне нужно, чтобы это отразилось в моем сценарии csv примерно так: Result_1 1.

Ваша первая проблема заключается в:

Но если вы это исправите, это просто вызовет новую проблему. csv.reader —это итератор, вы можете повторить его только один раз. Таким образом, это выведет каждую строку, а затем sorted отсортирует все, что осталось после того, как вы уже все взяли, то есть вы получите пустой список.

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

Наконец, вы ничего не делаете с sortedlist в конце, кроме как ссылаетесь на него. Предположительно, вы хотели print его, создать с ним новый файл CSV или сделать что-то еще, а не вообще ничего.

Кажется, об этом спрашивали много раз, однако ответ, который я нашел, теперь не работает. Давайте будем простыми, здесь у меня есть матрица numpy data = np.matrix([[9, 8], [7, 6], [5, 7], [3, 2], [1, 0]]) Затем отсортируйте по второму столбцу, как показано ниже [[1, 0], [3, 2], [7, 6], [5, 7], [9.

Похожие вопросы:

Я хочу отсортировать файл csv сначала по одному столбцу, а затем по другому. Я попробовал некоторые из немногих подходов в интернете для сортировки файла csv с несколькими столбцами. Проблема в том.

Я предположил, что сортировка файла CSV по нескольким текстовым / числовым полям с использованием Python будет проблемой, которая уже решена. Но я нигде не могу найти ни одного примера кода, кроме.

Я хочу отсортировать таблицу CSV по дате. Сначала это была простая задача: import sys import csv reader = csv.reader(open(files.csv), delimiter=;) for id, path, title, date, author, platform, type.

У меня есть скрипт python, который генерирует кучу данных в while loop. Мне нужно записать эти данные в файл CSV, чтобы он записывал по столбцу, а не по строке. Например в цикле 1 моего скрипта я.

Совершенно новый для python у меня возникли проблемы с поиском этого с версией 2.4 У меня есть текстовый файл, который содержит 3 столбца, они разделены не одной вкладкой, а 9 вкладками. 1000.

Кажется, об этом спрашивали много раз, однако ответ, который я нашел, теперь не работает. Давайте будем простыми, здесь у меня есть матрица numpy data = np.matrix([[9, 8], [7, 6], [5, 7], [3, 2].

Это мой скрипт python для сортировки по столбцу a csv файла, прочитанного из stdin: with sys.stdin as csvfile: reader = csv.reader(csvfile, delimiter=’,’) sortedlist = sorted(reader.

Я смотрел на Stack Overflow без какого-либо решения, которое, кажется, работает. Знай, что я новичок! Предположим, у меня есть файл (data.csv) со следующим содержимым: year,total 1990,57.58.

У меня есть файл csv,содержащий несколько строк и столбцов. Я хочу использовать python и bubblesort для сортировки файла по определенному столбцу. Например: Входной csv-файл: Daniel,New.

Источник

Как отсортировать csv файл python

Что он умеет делать:

За разбивку любей по годам отвечает конфигурационный файл years_of_disp.json. На данный момент он настроен на работу с майским приказом 2019 года по диспансеризации, но ничто не мешает вам внести в него правки в соответстии с нормативными документами или годом, когда вы его запускаете.

Как пользоваться программой:

Скрипт написан на Python, так что для работы нужен установленный в систему интерпретатор этого языка версии не ниже 3.5. Программа не имеет графического интерфейса, так что нужно будет с помощью командной строки переместиться в директорию ее расположения.

Скрипт принимает на вход только списки в формате .csv. Обычно табличные редакторы позволяют перевести текст из их формата в csv, так что заранее самостоятельно переведите в него нужные файлы. В ином случае никакого адевкатного результата ожидать не следует.

Подготовленные списки нужно поместить в директорию, где расположен скрипт. Далее нужно сделать вызов программы:

> python start_sort.py dist1.csv dist2.csv

Так вы его сможете запустить на Windows, если python прописан в Path (обычно это указывается при установке, но если у вас не так, то вручную добавьте интерпретатор туда).

python3 start_sort.py dist1.csv dist2.csv

Так этот вызов следует делать в Unix системах, но их использование пока не рекомендуется, в силу нерешенных проблем с кодировками, о чем подробнее будет сказано в разделе Известные проблемы

start_sort.py является точкой входа в программу. Остальные модули вызываются этим, и самостоятельно вызваны быть не могут.

За названием скрипта вам следует перечислить вручную все файлы, которые желаете обработать. Разделять их нужно пробелом, запятые не допускаются. Если вы случайно вызовете скрипт без аргументов, программа сообщит вам об этом.

Далее никаких действий уже не требуется. Если одно или несколько имен были введены с ошибкой (не указано расширение, пропущен символ или символ в неверном регистре), то программа сообщит вам об этом, но продолжит выполнение, если в списке есть еще введенные вами файлы. По результату вы получите новые списки только для тех файлов, которые ввели верно. В конце своей работы программа также напомнит о том, что не все файлы были обработаны, если у нее это не получилось.

Искать новые файлы следует в той же директории, где расположен скрипт.

Алгоритм сортировки основан на сравнении года рождения, но программа заранее не может знать, где он находится, поэтому в первой строке она ищет регулярным выражением подходящий столбец. Если даты написаны не стандартно в формате ДД.ММ.ГГГГ (разделитель может быть любой), то результат работы будет очень далек от того, что хотелось бы получить.

Контактная информация и дисклеймер

Автор создал этот скрипт только в личных учебных и рабочих целях, и ни как не отвечает за возможный ущерб, который может быть причинен его использованием, так что пользоваться им вы можете только на свой страх и риск (подробнее о своих правах и прочих последствиях использования этого ПО вы можете ознакомиться в лицензии MIT, которую вы принимаете фактом использования, модификации и прочих действий с этим скриптом)

Связаться с автором можно по почте: i.nikonoff16@gmail.com

About

Опыт сортировки документа в формате csv для предприятия

Источник

Сортировка csv

Вложения

Как отсортировать csv файл pythonclick_stream3.rar (908.3 Кб, 3 просмотров)

Сортировка таблиц из csv файла
Добрый день! Даны 2 структуры базы данных в csv файлах: kafedra.csv(id, название, количество.

Обратиться к файлу в папке через CSV модуль и Параметры CSV
Доброго времени суток, я чувствую что решение проблемы простое, но никак не могу найти решение в.

Сортировка csv файла по столбцу
Собственно задача: есть csv файл(открывал с помощью экселя) как с ним вообще работать? Как удалить.

Сортировка методом Шелла из файла csv
Доброе время суток. Пытаюсь сделать сортировку методом Шелла данных из файла csv. При компиляции.

Конвертировать CSV ANSI в CSV UTF-8 или шо делать
Привет, есть проблема, импортирую данные из CSV в mssql через Винформс, все хорошо инсертится если.

Разбиение CSV файла на много csv файлов по разделителю
Здравствуйте, есть файл в который нужно разделить, но не ровно по 30 строк например, а по 25, 23.

Запись в CSV-файл из массива. Не является форматом csv!
В общем искал работу. Дали тестовое написать парсер для сайта с выводом информации в csv-файл.

Как отсортировать csv файл pythonСортировка выбором, сортировка вставкой, сортировка заменой, сортировка обменом («пузырьковая» сортировка)
Создать класс, содержащий массив и реализующий алгоритмы сортировки и бинарного поиска в этом.

Источник

CSV-файл в Python – чтение и запись

Что такое CSV-файл в Python?

CSV-файл в Python означает «значения, разделенные запятыми» и определяется как простой формат файла, использующий определенную структуру для упорядочивания табличных данных. Он хранит табличные данные, такие как электронная таблица или база данных, в виде обычного текста и имеет общий формат для обмена данными. Файл csv открывается на листе Excel, а данные строк и столбцов определяют стандартный формат.

Узнаем, как осуществляется чтение и запись CSV-файлов в Python.

Функции модуля Python CSV

Модуль CSV используется для обработки файлов CSV для чтения / записи и получения данных из указанных столбцов. Существуют следующие типы функций CSV:

Чтение файлов CSV

Python предоставляет различные функции для чтения файла CSV. Опишем несколько методов для чтения.

В Python модуль csv.reader() используется для чтения файла csv. Он берет каждую строку файла и составляет список всех столбцов.

Мы взяли текстовый файл с именем python.txt, в котором есть разделитель по умолчанию(,) со следующими данными:

В приведенном выше коде мы открыли python.csv с помощью функции open(). Мы использовали функцию csv.reader() для чтения файла, который возвращает итеративный объект чтения. Объект чтения состоял из данных, и мы повторили цикл, используя цикл for, чтобы распечатать содержимое каждой строки.

Чтение CSV в словаре

Мы также можем использовать функцию DictReader() для чтения файла CSV непосредственно в словаре, а не для работы со списком отдельных строковых элементов.

Входной файл python.txt выглядит следующим образом:

Чтение с помощью Pandas

Pandas определяется как библиотека с открытым исходным кодом, которая построена на основе библиотеки NumPy. Он обеспечивает быстрый анализ, очистку данных и подготовку данных для пользователя.

Чтение файла csv в pandas DataFrame выполняется быстро и просто. Нам не нужно писать достаточно строк кода, чтобы открывать, анализировать и читать файл csv в pandas, и он хранит данные в DataFrame.

Здесь мы берем для чтения немного более сложный файл под названием hrdata.csv, который содержит данные сотрудников компании.

В приведенном выше коде трех строк достаточно для чтения файла, и только одна из них выполняет фактическую работу, то есть pandas.read_csv()

Запись файлов CSV

Мы также можем не только читать, но и писать любые новые и существующие файлы CSV. Запись файлов на Python осуществляется с помощью модуля csv.writer(). Он похож на модуль csv.reader() и также имеет два метода, то есть функцию записи или класс Dict Writer.

Он представляет две функции: writerow() и writerows(). Функция writerow() записывает только одну строку, а функция writerows() записывает более одной строки.

Диалекты

Они определяются как конструкция, которая позволяет создавать, хранить и повторно использовать различные параметры форматирования. Диалект поддерживает несколько атрибутов; наиболее часто используются:

Запишем следующие данные в файл CSV.

Он возвращает файл с именем Python.csv, который содержит следующие данные:

Запись CSV в словарь

Мы также можем использовать класс DictWriter для записи файла CSV непосредственно в словарь.

Источник

Формат CSV (Comma Separated Values) является одним из самых распространенных форматов импорта и экспорта электронных таблиц и баз данных. CSV использовался в течение многих лет до того, как был стандартизирован в RFC 4180. Запоздание четко определенного стандарта означает, что в данных, создаваемых различными приложениями, часто существуют незначительные различия. Эти различия могут вызвать раздражение при обработке файлов CSV из нескольких источников. Тем не менее, хотя разделители, символы кавычек и некоторые другие свойства различаются, общий формат достаточно универсален. Значит, возможно написать один модуль, который может эффективно манипулировать такими данными, скрывая детали чтения и записи данных от программиста.

Функции обработки CSV-файлов

csv.reader(csvfile, dialect=’excel’, **fmtparams) — возвращает объект reader, который построчно итерирует csvfile. Если csvfile является файловым объектом, то его нужно открыть с параметром newline=». Дополнительный параметр dialect используется для определения ряда параметров, характерных для специфического CSV диалекта. Он может быть подклассом Dialect или одной из строк, возвращаемой функцией list_dialects(). Также могут передаваться дополнительные ключевые аргументы fmtparams для переопределения отдельных параметров форматирования в текущем диалекте.

Каждая строка, считанная из файла csv, возвращается в виде списка строк. Автоматическое преобразование типов данных не выполняется, если не указан параметр формата QUOTE_NONNUMERIC (в этом случае все поля без кавычек преобразуются в числа с плавающей точкой).

Короткий пример использования:

csv.writer(csvfile, dialect=’excel’, **fmtparams) — возвращает объект writer, конвертирующий пользовательские данные в CSV-файл csvfile. csvfile может быть любым объектом с методом write(). Если csvfile является файловым объектом, то его нужно открыть с параметром newline=». Параметры dialect и fmtparams идентичны параметрам в функции csv.reader.

Необходимые методы экземпляра класса writer:

csvwriter.writerow(row) — записывает данные, представляющие одну строку CSV в файл, форматируя согласно текущему диалекту writer.

csvwriter.writerows(rows) — записывает данные, представляющие несколько строк CSV в файл, форматируя согласно текущему диалекту writer.

Пример использования writer :

csv.field_size_limit([new_limit]) — текущий максимальный размер поля. Если задан new_limit, то он становится новым макс. размером.

class csv.DictReader(f, fieldnames=None, restkey=None, restval=None, dialect=’excel’, *args, **kwds) — как reader, но отображает информацию о столбцах в словарь, ключи которого заданы в параметре fieldnames.

Остальные аргументы пробрасываются далее в экземпляр reader.

class csv.DictWriter(f, fieldnames, restval=», extrasaction=’raise’, dialect=’excel’, *args, **kwds) — как writer, но отображает словари в CSV-файл.

Остальные аргументы пробрасываются далее в экземпляр writer.

Помимо методов writerow и writerows, DictWriter имеет также метод

DictWriter.writeheader() — записывает данные строки заголовка в CSV-файл, форматируя согласно текущему диалекту writer.

Пример использования DictWriter:

Диалекты и параметры форматирования

Dialect.delimiter — разделитель столбцов в строке CSV-файла. По умолчанию ‘,’.

Dialect.quotechar — символ, использующийся для «склейки» поля, содержащего специальные символы, такие как delimiter, quotechar, или символы новой строки. По умолчанию используется значение ‘»‘.

При записи файла, если doublequote=False и не установлен escapechar, выдаст ошибку при обнаружении quotechar в столбце.

Dialect.lineterminator — символы, используемые для завершения строки при записи. По умолчанию ‘\r\n’.

Dialect.quoting — контролирует, когда кавычки должны генерироваться writer и распознаваться reader. Он может принимать любые константы QUOTE_* и по умолчанию имеет значение QUOTE_MINIMAL.

csv.QUOTE_ALL — writer оборачивает в кавычки все поля.

csv.QUOTE_MINIMAL — writer оборачивает в кавычки только поля, содержащие специальные символы (delimiter, quotechar, lineterminator).

csv.QUOTE_NONNUMERIC — writer оборачивает в кавычки все поля, не являющиеся числами. reader преобразует все поля без кавычек к типу float.

csv.QUOTE_NONE — writer не оборачивает никакие поля в кавычки. Если в данных попадается delimiter или lineterminator, он предваряется символом escapechar, если установлен (исключение, если не установлен). reader не обрабатывает кавычки.

csv.register_dialect(name[, dialect[, **fmtparams]]) — связывает dialect с именем name. Подробности о диалектах см. в разделе «Диалекты и параметры форматирования»

csv.unregister_dialect(name) — удаляет связь диалекта с данным именем.

csv.get_dialect(name) — возвращает класс диалекта, свзанного с именем name.

csv.list_dialects() — список доступных диалектов. На данный момент это ‘excel’, ‘excel-tab’, ‘unix’.

Предустановленные диалекты

class csv.excel — диалект CSV-файла, обычно генерируемого программой Excel.

class csv.excel_tab — диалект CSV-файла, обычно генерируемого программой Excel с настройкой «разделитель с помощью TAB».

class csv.unix_dialect — диалект CSV-файла, обычно генерируемого в UNIX-системах (‘\n’ для новой строки, закавычивание всех полей).

Определение диалекта

class csv.Sniffer — используется для угадывания диалекта CSV-файла. Имеет следующие методы:

csvsniffer.has_header(sample) — анализирует текст и возвращает True, если первая строка похожа на строку заголовков.

Методы определения диалекта являются эвристическими; это означает, что Sniffer может ошибаться.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *