Сравнить два файла csv
Мне кажется, что можно найти лучшее решения + я не знаю, как мне вывести в аутуп нужные мне колонки.
И бонусом, я даже не знаю, как такое гуглить, но мне нужно будет прикруть как-то дополнительный фильтр
К примеру в колонке Data1 могут быть такие значения:
И мне нужно сделать дополнительный фильтр, что если встерчается к примеру слово: WORLD, или EARTH, то пропускать.
Сравнить два больших файла на уникальные значения в строках
Доброго всем времени суток. Сразу скажу, практически впервые пользуюсь пакетом MS Office.
Сравнить два набора данных и вывести уникальные записи в Memo
Доброго времени суток! Помогите решить небольшую задачку! Нужно сравнить два набора данных в 2-х.
Как сравнить два строчных массива и вывести уникальные значения из одного из них?
Есть два строчных массива, первый - это общая словесная база в нем собрано около 2000 строк, второй.
Как сравнить два csv файла по определенной колонке?
Есть два файла var csv1 = File.ReadAllLines("1.csv"); var csv2 = File.ReadAllLines("2.csv"); .
Так я не понял, у вас там числа или строки. Если числа - то используйте numpy. load_txt для загрузки, потом отсортировать, searchsorted для поиска в отсортированом массиве.
Если строки - то просто преобразуйте в множество (set). И, конечно, разбейте код на функции, пока не поздно.
Непонятно что с чем ты сравниваешь. Почему в примере output выводится только две колонки, хотя их три в примере. Ты хочешь сравнить всю строку целиком (каждый столбец) или только по первому столбцу? Имеет ли значение порядок строк?
Вообще для чтения csv есть модуль csv в котором ты можешь получить все строки как набор значений списков
или как словари.
Нужно вывести в отдельный файл только уникальные строки, сравнивая два файла
Приветствую! Начну сразу с дела: нужно вывести в отдельный файл только уникальные строки.
Сравнить два ListBox и уникальные элементы записать в третий
Помогите, как правильно решить задачку. Нужно сравнить данные listbox2 с listbox1 , те данные.
Вывести два одномерных массива в разные столбцы csv-файла
Здравствуйте! Не смог найти в инете ответ. Есть 2 одномерных массива. Надо вывести их в csv файл.
Сравнить два файла и вывести на экран их отличие
Имеются два файла одинакового размера, элементами которого являются отдельные символы. Выяснить.
Сравнить два doc-файла и вывести результат сравнения
Всем привет! Я хочу создать программу, которая сравнивает содержимое двух документов Word и.
This tool allows to compare CSV files and visualize the differences. It compares line by line, and indicates which fields are different. It is Open source :), you can download the source code here.
You can see the user guide to help you to use this csv compare tool.
Escape (character to escape quote)
Why compare CSV files ?
Comma-separated values (CSV) is a delimited text file that uses a comma to separate values. Each line of the file is a record which contains fields, separated by commas. Sometimes the separator can be another character (semicolon, tab . ).
Many applications use the CSV format to transfer data. This format is convenient for exporting and / or importing data. For example, databases can often export in this format. It is often preferred for large amounts of data.
Sometimes it is necessary to compare CSV files. For example to detect the differences between two exported files.
It can be complicated when the CSV file are large, this tool allows you to compare CSV easily.
Минусы:
нельзя редактировать табличные части;
работает только с форматом Excel;
доступна в Microsoft Office 2013 Pro+ и Microsoft Office 365 Pro+.
Плюсы:
исключены ошибки по невнимательности, вам нужно только указать, что с чем сравнивать и что вывести в вывод;
надстройка работает со множеством форматов и различными источниками данных.
Online CSV compare tool
CSV diff tool allow to compare two CSV files online. The comparison is done directly in your browser, Your CSV files are not sent to the server side! There is no limitation of size or number of rows (But for large files, your browser may not support the processing load and may not return control. ).
CSV diff tool makes a line by line comparison, then it compares each field according to their position in the line. Your csv files must be sorted so you can compare them. We do not yet have a tool to sort your CSV, but it is being considered.
Всем привет!
Такая проблема - у меня есть два файла: 1 содержит множество строк, в каждой из которых около 40 столбцов. 2 файл содержит так же множество строк, но в каждой строке по 1 столбцу. Мне нужно сравнить каждую строку по 40му столбцу, из файла 1, со строками из 2 файла. Если хотя бы одна строка из файла 1 по 40му столбцу совпадает с любой из строк в файле 2, сохранить всю строку в новый файл. Если просто, то , допустим, у нас есть список с какими именами людей мы будем пропускать(это 2 файл), например Коля, Вася, Петя. И просто пришедшая толпа людей с разными фамилиями именами отчествами(файл 1). Нам, вне зависимости от фамилии и отчества(все столбцы кроме 40го) нужно запускать только людей с именами Коля,Вася,Петя.(т.е сохранять в новый файл).
Для решения этой задачи мне сказали использовать змею, но я просто не могу найти инструменты в питоне для решения этой задачи. Сижу уже 3й день и так и не продвинулся.
Заранее спасибо!
P.S. Файлы в формате CSV.
- Вопрос задан более трёх лет назад
- 1752 просмотра
Может Вам воспользоватся MS excel или Libree ?
Просто как то странно звучит, что Вам посоветовали использовать питон, но у Вас да же логики по которой работать будет программа нет. Вы вообще пишите на питоне?
Ну как бы тут могут Вам написать программу, но эт как то не честно, делать за Вас работу.
Нужно написать используя именно пайтон. Да лол, я учусь на эколога(писал когда-то простенькие скрипты на пыхе). Мне вот выдали такое задание.
Знаю, что скрипт такой сделать, более менее понимающему пайтон человеку не составит труда. Я же - просто в шоке.
Sam67, тогда хотя бы напишите
1. Структуру файла 1.csv.
Хотя бы 2-3 строки из файла, что бы можно было тестировать
2. Структуру файла 2.csv.
Хотя бы 2-3 строки из файла, что бы можно было тестировать.
А то мы тут понапридумываем =)
В питоне нет специальных велосипедов для решения частных задач. Все через if и for, как у всех языков.
1 файл
1036749 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 9.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 k__Bacteria; p__Firmicutes; c__Bacilli; o__Gemellales; f__Gemellaceae; g__; s__
259732 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 k__Bacteria; p__Proteobacteria; c__Alphaproteobacteria; o__Caulobacterales; f__Caulobacteraceae; g__Brevundimonas; s__diminuta
2 файл
g__Brevundimonas
g__Sphingomonas
g__Microcystis
По сути, если g__ пусто - отсеиваем, если g__(и что то тут) не совпадает с ни одной из строк файла 2 - отсеиваем. Что то типо того(Cry).
Есть 2 csv файла с более чем 3к строк. Структура столбцов у них одинаковая, каждом есть столбцы Name, Surname, Email, Phone и т.д.
Интересует сравнение этих файлов только по столбцу Email и запись не дублирующихся строк в 3-й(желательно с маркировкой в каком файле этот email присутствует, а в каком нет.)
Я очень долго танцевал с Compare-Object, но так и не добился результата. Может что сталкивался с подобной задачей?
в цсв файлах все разделено табами
Изначально скрипт ругался на пустое значение -Append и я его удалил.
Так же изменил разделители на ";"
Получилось:
В итоге скрипт отрабатывает без ошибок но:
1) Файл "unique_emails.csv" показывает только одну строку с отличием, при чём ту что была последней в файле "mail_old.csv".
2) Все русские имена и фамилии превратились в знаки вопроса.
1 случается из-за отсутствия -append ключа. у него нет значения, он там только для того, чтобы указать команде, что нужно добавлять строки в файл, а не перезаписывать его одной строкой на каждом проходе цикла.
2. попробуйте обновить повершелл до 5.1 ($psversiontable) если он старый. попробуйте ввести ключ -encoding в команду export-csv.
azarij, Сделал исправления: добавил -append -encoding и обновил версию ps.
Проблема с Кириллицей решилась, но после добавления ключа -append, другая проблема изменилась. Теперь файл unique_emails.csv точная копия файла "mail_old.csv", даже вес файла в КБ одинаковый.
Верхняя строчка обоих файлов:
Не знаю имеет ли значение, но один и тот же email может находится на совершенно разных строчках файлов. Т.е. например user@email.ru может находится на 10 строчке файла "mail_old.csv", а в файле "mail_new.csv" он может находится на 2000-й строчке.
странно. ладно. натравите скрипт на следующие два файла:
1.csv
"name";"email";"phone"
"ak";"ak@ak.com";"0123456"
"kb";"kb@kb.com";"98543221"
"akk";"akk@akk.com";"0123456"
"kak";"kak@kak.com";"98543221"
"aak";"aak@aak.com";"0123456"
"kka";"kka@kka.com";"98543221"
"aka";"aka@aka.com";"0123456"
"kakk";"kakk@kakk.com";"98543221"
2.csv
"name";"email";"phone"
"ak";"ak@ak.com";"0123456"
"kb";"kb@kb.com";"98543221"
"akkk";"akkk@akkk.com";"0123456"
"kakk";"kakk@kakk.com";"98543221"
"aakk";"aakk@aakk.com";"0123456"
"kkak";"kkak@kkak.com";"98543221"
"akak";"akak@akak.com";"0123456"
"kakkk";"kakkk@kakkk.com";"98543221"
в результирующем файле должны быть все строки, кроме тех двух, что совпадают в обоих файлах.
и я бы все таки посмотрел в сторону compare-object. с ним не так сложно разобраться.
"name";"email";"phone"
"ak";"ak@ak.com";"0123456"
"kb";"kb@kb.com";"98543221"
"akk";"akk@akk.com";"0123456"
"kak";"kak@kak.com";"98543221"
"aak";"aak@aak.com";"0123456"
"kka";"kka@kka.com";"98543221"
"aka";"aka@aka.com";"0123456"
"kakk";"kakk@kakk.com";"98543221"
Часто мы сталкиваемся с задачами, где необходимо сверить данные двух файлов или таблиц до изменений и после. Это не проблема, если в каждом источнике небольшое количество строк и максимум одна страница. А если предстоит найти отличия в файлах, состоящих из сотен страниц и тысяч строк? Искать глазами трудно и долго — велика вероятность что-то не заметить и потратить на столь утомительное занятие часы, дни, а то и недели. В статье я поделюсь 4 способами сравнить объемные таблицы по различным значениям, которые легко освоит любой пользователь.
Минусы:
иногда потребуется не один час, чтобы подстроить таблицу для шаблонной формулы;
при сверке объемных документов, даже с использованием формул, легко не заметить нужную ячейку и допустить ошибки по невнимательности.
Способ № 2: сравнить в Excel
Самый распространенный метод: выгружаете первоначальный вариант отчета и тот же отчет с поправками в формате .xls и сверяете их в Microsoft Excel, пользуясь доступными формулами.
Для примера приведу стандартную формулу «Если».
1. Выделяем пустую ячейку. В ней будет отображаться результат функции.
2. В верхней панели кликаем на ярлык формулы .
3. В предложенном списке выбираем функцию «ЕСЛИ», нажимаем «ОК».
4. Задаем условие в поле «Лог-выражение». На скрине-примере условие следующее: если значение ячейки по колонке «Конечный остаток» левой таблицы равен значению ячейки по колонке «Конечный остаток» справа.
5. В поле «Значение_если_истина» указываем, какой вывод нужно вывести, если значения равны.
6. В поле «Значение_если_ложь» обозначаем, какой вывод нужно вывести, если значения различны.
В таблице автоматически отобразился результат по выделенной строке. Чтобы вывести итоги по другим строкам, наведите мышку на правый нижний угол первой ячейки с формулой, захватите и протяните по колонке вниз до конца таблиц.
В скрине-примере видно, что гораздо больше итогов с выводом «отличаются», что не соответствует действительности — некоторые строки с одним и тем же регистратором не располагаются друг напротив друга. Выбранная функция этот момент не контролирует, поэтому вышли ложные результаты. Чтобы исключить такие ошибки, прежде чем использовать формулу, необходимо обе таблицы вручную откорректировать и проставить строки с одним и тем же регистратором в одну линию.
Способ занимает много времени, особенно если сводка состоит из тысячи строк. Его удобно использовать, работая с небольшим объемом данных.
В маленьких файлах вы можете суммировать значения ячеек в колонках и тем самым выходить на строки с различиями.
Если хотите быстро найти нужные ячейки, не вчитываясь в каждую строку и не напрягая зрение, воспользуйтесь функционалом «Условное форматирование».
Вот один из примеров настройки:
CSV comparison
Минусы:
ограниченное количество форматов — работает только с .txt и .mxl. Нельзя вставить Excel-файлы;
невозможно сохранить результат сравнения во внешний файл. Даже если скопировать данные и вставить в тот же Excel, цветное выделение различий не перенесется;
нет дополнительных формул, например, чтобы вывести сумму по колонке.
User guide
This tool allows to compare two CSV files, and visualize the diff.
Copy and paste, drag and drop your CSV files or directly type in the editors above.
You can also click on "load CSV from URL" button to load your file from a URL (Must be https).
You can also click on "Browse CSV file" button to load your CSV from a local file.
- Separator: The character that separates columns within each line.
- Quote: The quoting character to use when a data value is quoted.
- Escape: The character to use to escape a "quote" character.
Click on "Compare" button to compare your CSV files!
You can choose to display only the rows with differences or to display them all (With a color code to visualize the differences).
This tool highlights in red color the data which are different.
Минусы:
пока не обнаружено =)
Надеюсь, методы, о которых я рассказал, пригодятся вам в работе и сделают процесс сравнения данных проще и легче. Поделитесь в комментариях способами сопоставления, которыми пользуетесь вы.
Плюсы:
гибкая система функций, условий. Можно самостоятельно прописать практически любые условия по сравнению, выделению, форматированию данных.
Способ № 1: сравнить в базе 1С
На любой платформе 1С есть типовая обработка «Сравнить файлы». Находится в верхнем левом углу: «Главное меню — Файл — Сравнить файлы».
Чтобы начать работать, добавьте сопоставляемые файлы в окошки «Сравнить» и «С». Укажите «Как» сравнить: табличный документ, текстовый документ или двоичное сравнение. Нажмите клавишу «ОК».
Открылось окно с обеими таблицами, в которых цветом выделены отличающиеся значения.
На верхней панели инструментов доступны следующие команды :
позволяют переходить по различиям от текущего значения к следующему и обратно, в это время в основном окне будет выделена ячейка с отличием;
меняет порядок сравнения: если ее нажать, то правый лист окажется слева, а левый — справа;
— настройка ячеек по цветам.
В нижней части окна отображается подсказка, что означает каждый цвет.
Плюсы:
позволяет быстро и просто сверять готовые таблицы;
можно сохранить результат для дальнейшего использования;
есть автоматическое выделение всех отличающихся ячеек, фильтр по интересующим параметрам.
Способ № 4: использовать Excel Power Query
Power Query — отдельная надстройка в Excel, которая по умолчанию есть в версии Microsoft Office 2016 и выше (вкладка «Данные»). В младших версиях ее можно установить самостоятельно, скачав по ссылке: Power Query — технология подключения к данным, которая помогает обнаруживать, подключать, объединять и уточнять данные из различных источников для анализа.
Чтобы начать с ней работать, необязательно заранее подготавливать файлы Excel, сохранять, копировать таблицы. Power Query позволяет загружать данные:
внешнего файла форматом Excel, CSV, XML;
баз данных SQL, Access, IBM DB2 и других;
веб-служб Dynamics 365,
Самые продвинутые пользователи могут «Написать запрос с нуля».
В этой статье я подробно опишу только сопоставление двух таблиц. На первый взгляд, способ очень трудный и долгий, но если вы освоите его, то процесс будет занимать не больше 10 минут.
Перед вами две таблицы в Excel. Нужно преобразовать каждую в умную таблицу. Для этого выделите нужный диапазон, на вкладке «Главная» кликните на «Форматировать как таблицу» или на клавиатуре нажмите Ctrl+T.
Теперь с каждой таблицы необходимо создать отдельные запросы для сравнения. Выделите любую ячейку в первой таблице и перейдите на вкладку Power Query «Из таблицы или диапазона». Она откроется в «Редакторе Power Query». Рекомендую задать ей «Имя» в свойствах, чтобы в дальнейшем не путать файлы. При необходимости уберите лишние строки и столбцы.
Нажмите «Закрыть и загрузить в …», выберите «Только создать подключение» и кликните на кнопку «Загрузить».
Повторите все шаги со вторым документом.
В правой части окна появились два запроса с указанными именами таблиц. На панели инструментов выберите команду «Слияние» и укажите поочередно созданные запросы. По одному разу в каждой части окна кликом выделите колонки, по которым нужно объединить файлы. Тип соединения «Полное внешнее (все строки из обеих таблиц)». Кликните на «ОК».
Вы снова попали в «Редактор Power Query». Здесь обе таблицы объединены в одну путем слияния указанных столбцов. В «Свойствах» задайте имя новому документу — раскройте крайнюю правую колонку, нажав на иконку .
Следующий этап — вывести отличия таблиц в отдельную колонку. На вкладке «Добавление столбца» выберите «Условный столбец». В окне настройки задайте «Имя нового столбца» и проставьте условия сравнений колонок и какой вывод должен отразиться при их соблюдении. Правил можно задавать неограниченное количество с помощью команды «Добавить правило».
В примере задано:
1. Если в колонке «Регистратор» первой таблицы стоит значение null, а во второй таблице это значение заполнено, значит документ «Добавили».
2. Если в колонке «Регистратор1» второй таблицы стоит значение null, значит документ «Удалили».
3. Если значения колонок «Конечный остаток» и «Конечный остаток1» не равны, значит данные «Изменили».
Обратите внимание на третье условие. Чтобы в «Значении» выбрать нужную колонку, кликните на иконку , затем «Выберите столбец». Только тогда появится выпадающий список допустимых колонок.
Обязательно заполните в левом нижнем углу значение «В противном случае» — оно будет исполняться, если ни одно из вышеприведенных условий не выполнено. Нажмите «ОК».
В «Редакторе» появилась крайняя правая колонка, в которой выведены результаты сравнения по каждой строке. С помощью удобного фильтра можно вывести только строки с интересующим итогом.
Сохраните документ с помощью команды на «Главной» вкладке: «Закрыть и загрузить в … — Таблица — Имеющийся лист — — укажите ячейку, с которой должна начаться новая таблица — ОК — Загрузить».
Итог: таблицы до сравнения и объединенная сводка с готовыми результатами для анализа.
Способ №3: использовать «Средство сравнения электронных таблиц»
«Средство сравнения электронных таблиц» — отдельное ПО, устанавливаемое вместе с пакетом версии Microsoft Office 2013 Pro+ и Microsoft Office 365 Pro+. В других версиях этой программы нет.
Чтобы ее запустить, в меню «Пуск» выберите: «Все программы — Microsoft Office — Средство сравнения электронных таблиц (Spreadsheet Compare 2013)».
На вкладке «Главное» (Home) нажмите «Сравнить файлы» (Compare Files).
В окошках «Сравнить» (Compare) и «С» (To) укажите нужные файлы формата Excel. Нажмите «ОК».
Выбранные файлы распределились в разных частях рабочего окна, отличающиеся ячейки в них выделены цветом. Вы можете отрегулировать, какие различия показывать, а какие нет, с помощью настройки Option, которая расположена в левой нижней части окна. Тут же указано, что означает каждый цвет.
Правее от окошка Option отображается список всех ячеек, где отличаются значения. Если вы кликните на интересующую строку, в табличных частях программа автоматически выделит эти ячейки и вам не придется искать их глазами.
В правом нижнем углу показывается статистика по отличиям: общее количество различающихся значений, число ячеек с разным форматом и прочее.
Результаты сравнения можно сохранить в Excel по команде: «Экспорт результатов» (Export Results) на вкладке «Главное» (Home). Есть возможность скопировать итоги и вставить их в любое другое текстовое ПО: «Копировать результаты в буфер обмена» (Copy Results to Clipboard).
Плюсы:
не требует дополнительного программного обеспечения;
моментально показывает все изменения без предварительных настроек;
удобный интерфейс: когда на любой части окна прокручиваешь первый файл вверх/вниз или вправо/влево, в то же время параллельно ему прокручивается второй.
Читайте также: