Как сравнить две строки в файле CSV? [закрыто]

У меня есть data.csv файл, который выглядит следующим образом.

-1.95e+01   -2.30e-01   -2.56e-01   4.44e+01
-1.95e+01   -2.30e-01   -7.68e-01   4.48e+01
-2.00e+01   -2.30e-01   -2.56e-01   3.41e+01
-2.00e+01   -2.30e-01   -7.69e-01   3.46e+01
-2.10e+01   -9.92e+00   1.00e+01    9.66e+01
-2.10e+01   -9.92e+00   2.30e+00    4.29e+01

Я хотел бы иметь файл result.csv , чтобы, если значение в первом столбце совпадает, захватить все данные в первых четырех столбцах (есть 4 столбца) и сохранить это в файле result.csv . Затем следующие равные значения и сохраните их в следующих четырех столбцах. Например, мой result.csv должен выглядеть так

-1.95e+01 -2.30e-01 -2.56e-01 4.44e+01  -2.00e+01 -2.30e-01 -2.56e01 3.41e+01 -2.10e+01 -9.92e+00 1.00e+01 9.66e+01
-1.95e+01 -2.30e-01 -7.68e-01 4.48e+01  -2.00e+01 -2.30e-01 -7.69e-01 3.46e+01 -2.10e+01 -9.92e+00 2.30e+00 4.29e+01

Моя основная попытка выглядит следующим образом:

with open('data.csv', 'r') as f:
    csv_reader = csv.reader(f, delimiter='\t')
    for col in csv_reader:      
        i = 0
        if col[0] == "Next value of the same column": 'don't know how to fix
            #Grab all the values which have same value in the first column
        else:
            #Grab next values which have same value in the first column
        i += 1  
-1
задан 22 July 2019 в 22:08

1 ответ

import csv

with open('data.csv', 'r') as _:
  input = csv.reader(_, delimiter='\t')
  output = [[]]
  previous_col0 = None
  line_n = 0
  for cols in input:
      if cols[0] == previous_col0: 
          line_n += 1
      else:
          previous_col0 = cols[0]
          line_n = 0 
      if len(output) <= line_n:
          output += [[]]
      output[line_n] += cols
2
ответ дан 23 October 2019 в 09:37

Другие вопросы по тегам:

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