-1

У меня есть проблема, похожая на упомянутую здесь:

Как объединить два файла CSV?

Я хочу присоединиться к файлу, используя первое поле обоих файлов в качестве ключа соединения.

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

(Ключ соединения - это IP-адрес, то есть первый столбец в обоих файлах.)

3 ответа3

1

Я бы предложил использовать SQLite для этой операции. Установка SQLite очень проста, не требуется разрешение root, хорошо работает на всех платформах.

шаги:

  1. Импортируйте оба CSV-файла в базу данных SQLite.
  2. Используйте SQL, чтобы сделать соединение.
  3. Сохраните вывод как файл CSV.

sqlite3

.разделитель ","

создать таблицу test1 (текст col1, текст col2);

.import test1.csv test1

создать таблицу test2 (текст col1, текст col2);

.import test3.csv test1

.mode csv

.output outfile.csv

выберите a.col1, a.col2, b.col2 из test1 a test test2 b для a.col1 = b.col1;

.output stdout

0

Я действительно использовал бы базу данных для этого. Вы можете попробовать использовать MS Access или OpenOffice Base. Вам может понадобиться временно использовать электронную таблицу (например, Excel), чтобы помочь импортировать файлы CSV.

0

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

Пример:

подать

a,x
b,y
c,z

файл б

l,m
n,p
k,m

Код - join.py

import csv
source1= csv.reader( open("a","rb") )
source2= csv.reader( open("b","rb") )
dest= csv.writer( open("c","wb") )
for row in source1:
    result=row[1]
    dest.writerow(result)
for row in source2:
    result=row[1]
    dest.writerow(result)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .