Управление данными из CSV-импорта с помощью python - PullRequest
1 голос
/ 18 марта 2020

Я сталкиваюсь с некоторыми препятствиями с CSV, которым я пытаюсь управлять. Моя цель - открыть файл csv, который хранится в моей учетной записи pythonanwywhere, который состоит из двух столбцов (идентификаторы и том), и разделить эти столбцы на два списка для последующей обработки и в итоге вывести два новых файла csv.

У меня постоянно возникают проблемы с разделением импортированного списка в целом. Если я пытаюсь создать новый список, я получаю ошибку индекса: список вне диапазона. В csv есть только два столбца, поэтому я подумал, что индекс должен быть просто 0 и 1.

Я пробовал разные способы обработки этих данных, но меня все время приводили в движение. Это текущий код, с которым я работаю:

import csv
ids =[]
volume =[]

with open('TestImportCSV.csv', newline='') as f:
reader = csv.reader(f, delimiter = '\t')
#reader = csv.reader(f, delimiter = ',')
        for row in reader:
            print(row[0])

Если я просто напечатаю CSV для строки, это будет выглядеть так:

['SampleID, Volumes']
['PD0014-8258', '319']
['PD0014-8259', '313']
['PD0014-8117', '513']
['PD0014-8613', '373']
['PD0014-8719', '221']

Принимая во внимание печать индекса строки [0 ] приводит к отсутствию диапазона в индексе списка и выводит:

SampleID, Volumes
PD0014-8258
PD0014-8259
PD0014-8117
PD0014-8613
PD0014-8719

Я чувствую, что, возможно, есть довольно простое решение для этого, но должно быть что-то, что я пропускаю.

**** РЕДАКТИРОВАТЬ **** Добавление примеров форматирования входного файла ниже.

Excel CSV: "Column1" "Column2"

SampleID    Volumes
PD0014-8258 319
PD0017-8259 313
PD0014-8117 513 

Загружен на pythonanywhere:

1 SampleID Volumes
2 PD0014-8258 319
3 PD0014-8259 313
4 PD0014-8117 513

Загруженный файл из pythonanywhere, открыт с помощью блокнота:

SampleID, Volumes
"PD0014-8258    319",
"PD0014-8259    313",
"PD0014-8117    513", 

1 Ответ

0 голосов
/ 18 марта 2020

Ваш код в порядке.

Ваш входной файл содержит запятую в заголовке вместо вкладки.

Пожалуйста, включите файл TestImportCSV.csv, чтобы подтвердить это.

Ваш вывод выглядит невозможным: похоже, ваш заголовок не имеет правильного разделителя. Посмотрите внимательно: в нем отсутствуют закрывающая кавычка после SampleID и открывающая кавычка перед томами.

проверьте ваш код с очищенным входным файлом.

...