Объединить / добавить два файла CSV по столбцам без общего индекса - PullRequest
0 голосов
/ 24 июня 2019

У меня есть два файла CSV

csv1 - я ввожу команду cmd и записываю ее в file1.

timestamp     ref_id    rx        ry     tag      repeat    backoff
1561333986465   44   47.8312    11.0052  c_tag      0        0 
1561334690976   44   47.8312    11.0052  c_tag      1       1500
1561334703668   44   47.8312    11.0052  c_tag      2       1500

csv2 - результаты этой конкретной команды публикуются в файле 2.

tStart         source   trackingID  anchs   x        y    z
1561333987329   toa        0           8    96      2.5   4
1561334691738   toa        0           8    95.2    2.2   4
1561334693818   toa        0           8    98.5    3.7   4
1561334704328   toa        0           8    96.6    2.9   4
1561334706428   toa        0           8    95.8    2.6   4
1561334708517   toa        0           8    97.3    4.3   4

Если для параметра param установлено значение 0, команда выполняется только один раз, а результат также публикуется один раз. если repeat = 1, команда результата запускается дважды и отправляет результат дважды. Таким образом, если для результата установлено значение n, команда выполняется n раз, а результат отправляется n раз на csv2. Мне нужно объединить эти два файла таким образом, чтобы первые 7 столбцов содержали команду, а следующие 7 - результаты.


import csv

in_1_name = "/home/input.csv"
in_2_name = "/home/excel/output.csv"
out_name = "/home/merge/merged.csv"

with open(in_1_name) as in_1, open(in_2_name) as in_2, open(out_name, 'w') as out:
    reader1 = csv.reader(in_1, delimiter=";")
    reader2 = csv.reader(in_2, delimiter=";")
    writer = csv.writer(out, delimiter=";")
    for row1, row2 in zip(reader1, reader2):
        if row1[0] and row2[0]:
            writer.writerow([row1[0], row2[0]])

Приведенный выше код просто объединяет столбцы от csv1 до csv2, так как между двумя csv нет ничего общего. Я не могу найти способ получить ожидаемые результаты. Любая помощь приветствуется.

expected result :

timestamp   ref_id  rx  ry  tag repeat  backoff tStart  source  trackingID  anchs   x   y   z
1561333986465   44  47.8312 11.0052 c_tag   0   0   1561333987329   toa 0   8   96  2.5 4
1561334690976   44  47.8312 11.0052 c_tag   1   1500    1561334691738   toa 0   8   95.2    2.2 4
X   X   X   X   X   X       1561334693818   toa 0   8   98.5    3.7 4
1561334703668   44  47.8312 11.0052 c_tag   2   1500    1561334704328   toa 0   8   96.6    2.9 4
X   X   X   X   X   X   X   1561334706428   toa 0   8   95.8    2.6 4
X   X   X   X   X   X   X   1561334708517   toa 0   8   97.3    4.3 4

...