Вы импортируете csv
в самом верху, но затем решили не использовать его. Интересно, почему - кажется, просто , что вам нужно здесь. Итак, после краткого взгляда на официальную документацию , я получил это:
import csv
data = []
with open('../Downloads/htviope2016.csv') as csvfile:
spamreader = csv.reader(csvfile, delimiter=';')
for row in spamreader:
data.append (row)
print("File has been read, and it has ", len(data), " lines.")
Это все, что вам нужно прочитать во всем файле. Вам не нужно - для некоторых операций достаточно обрабатывать по одной строке за раз - но с полными данными, загруженными и готовыми в памяти, вы можете поиграться с этим.
print (f'First row length: {len(data[0])}')
Количество ячеек в ряду. Обратите внимание, что эта первая строка содержит заголовок, и вы, вероятно, не используете его. Давайте бросим это.
print ('Discarding 1st row NOW. Please wait.')
data.pop(0)
Готово. Обычный pop()
удаляет последний элемент, но вы также можете использовать индекс. В качестве альтернативы, вы можете использовать более питонический (потому что «нарезка») data = data[1:]
, но я предполагаю, что это может включать копирование и перемещение больших объемов данных.
print ('First 10 rows are ...')
for i in range(10):
print ('\t'.join(data[i])+'(end)')
Смотри, в памяти есть данные! Я вставил (end)
из-за следующего:
print (f'First row, first cell contains "{data[0][0]}"')
print (f'First row, last cell contains "{data[0][-1]}"')
который показывает
First row, first cell contains "2016-01-01 00:00:00"
First row, last cell contains ""
потому что каждая строка заканчивается ;
. Эта пустая «ячейка» может быть тривиально удалена во время чтения (в идеале) или после него (как мы все еще имеем в памяти):
data = [row[:-1] for row in data]
и тогда вы получите
First row, last cell contains "0"
и теперь вы можете использовать data[row][column]
для обращения к любой ячейке, которую вы хотите (конечно, только в допустимых диапазонах).
Отказ от ответственности: это мой самый первый взгляд на модуль csv
. Некоторые операции могут быть выполнены более эффективно. Практически все примеры дословно из официальной документации , которая доказывает, что всегда стоит взглянуть туда сначала .