Как разбить элементы .csv на два отдельных списка - PullRequest
0 голосов
/ 25 января 2020

Итак, мне дан файл с минимальными и максимальными значениями, упорядоченными так:

12.0,-4.5
34.6,1.8
12.7,2.8
etc...

Для целей моей программы мне нужно взять каждую строку и разбить ее, поместив один «столбец» из значения в одном списке и второй «столбец» в другом. Таким образом, я смогу использовать все первые значения для вычисления среднего / минимального / максимального, а все вторые значения можно использовать для отдельного вычисления.

До сих пор я мог только добиться разделения каждой строки на отдельные элементы, например:

['12.0,-4.5'], ['34.6,1.8'], ['12.7,2.8'], etc...

Но я хочу, чтобы это было:

['12.0', '34.6', '12.7', etc...] and ['-4.5', '1.8', '2.8', etc...]

Мой код выглядит следующим образом. Я попытался сделать достаточное количество комментариев, но если вам нужно дополнительное объяснение (в чем я сомневаюсь), дайте мне знать!

#import libraries to be used
import time

fileChoice = input("Enter the file name: ") 
inputFile = open(fileChoice)

catTypes = inputFile.readline().strip('\n').split(',') #the headers of the file, taking away special characters
numOfHeadings = len(catTypes) #determining how many headers there are
print(catTypes) #printing the headers for future reference
rowCount = sum(1 for row in inputFile) #counting rows for later use
inputFile.close()

li = open(fileChoice) #opening file again for data collection
li.readline()

li = [entry.split() for entry in li] #creating list for every line in .csv file
print(li)

Основная часть путаницы в списке - это последние четыре строки, как бы я изменил это сопровождать мою идею двух списков?

1 Ответ

1 голос
/ 25 января 2020

Разделите каждую строку и добавьте row[0] в один список, row[1] в другой список.

import csv

mins = []
maxs = []

with open(fileChoice) as f:
    f.readline() # Skip header line
    csvin = csv.reader(f)
    for row in csvin:
        maxs.append(row[0])
        mins.append(row[1])
...