Написать первый набор строк

Я анализирую csv-файл и удаляю первый столбец, это было выполнено. Я прошу вашей помощи в том, как сказать Python, чтобы пропустить строки и только писать строки, которые имеют значимые данные в нем.

Result CSV:

Presented_By       Sources        Salesman
 John               Radio          Mary   
 Edwin              Newspaper      Bexie
 Ben                Radio          Jon




                   Radio               2
                   Newspaper           1

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

import csv
with open("InfoCenterTracker.csv","rb") as source:
    rdr= csv.reader( source )
    with open("result.csv","wb") as result:
        wtr= csv.writer( result )
        for r in rdr:
            wtr.writerow( (r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10], r[11], r[12], r[13], r[14], r[15], r[16], r[17], r[18]) )

        print "Column deleted"

2 ответа

  1. Правильно ли будет предположить, что любая строка с пустым первым столбцом должна быть пропущена? Существуют ли строки фактических данных с пустой первой строкой?

    если это безопасно, вы можете добавить:

    if r[1] == "": 
      pass
    else:
       wtr.writerow(<Row contents>)
    

    Мне интересно, намеренно ли вы ставите двойные скобки? возможно, его можно сократить до

    wtr.writerow(r)
    
  2. Добавьте оператор if, чтобы проверить содержимое r[0]if it’s empty and r[1]is not empty continueThe loop.

    Кроме того, вам не нужно записывать каждый элемент списка для Аргументов..

    Можно использовать *r[starting:end index]для расширения списка в аргументы в вызове функции. Если необходимо использовать Кортеж tuple(r[start:end])в качестве аргумента