#python #csv #jupyter-notebook
#python #csv #jupyter-notebook
Вопрос:
У меня есть массивные CSV-файлы с более чем 12 миллионами строк и 4 столбцами, первый столбец предназначен только для упорядочения от 0 до 12 миллионов, второй содержит название региона, в котором находится эта вещь, третий — город (каждый город — это число) и 4-й столбец.у одного есть количество посетителей. Что я хотел бы сделать, так это построить третий и четвертый столбцы (один на x и один на y), но только для определенного региона, я перепробовал так много вещей, чтобы просто прочитать ту часть файла, в которой написано «Эссекс», но ничего не работает, второй столбец — эторегион, который меня интересует, называется «регион», это «Эссекс», любая помощь? Спасибо!
Комментарии:
1. Это звучит как простая задача? Откройте файл, передайте обработчик файла программе чтения csv, выполните итерацию по строкам, всякий раз, когда строка соответствует требованию, соберите ее (или запишите ее непосредственно в файл), затем запишите собранные строки в файл, который затем содержит только то, что вы хотите. Я что-то пропустил? Не могли бы вы добавить некоторые примеры данных к вашему вопросу?
Ответ №1:
Вам следует заглянуть в стандартную библиотеку под названием «csv«. Что-то вроде этого, чтобы заставить вас работать:
import csv
with open("name of csv file") as csvfile:
reader = csv.reader(csvfile)
for row in reader:
# Check for Essex
if row[1] == 'Essex':
# Do whatever
pass
В приведенном выше примере предполагается, что в вашем CSV-файле нет строки заголовка. Если у вас есть заголовок, вы можете пропустить его следующим образом:
with open("name of csv file") as csvfile:
# Read and skip a header line.
header = csvfile.readline()
reader = csv.reader(csvfile)
for row in reader:
# As above
или загляните в csv.DictReader() .
Комментарии:
1. Краткое дополнение: всегда рекомендуется уменьшать объем кода с отступами. Итак
if row[1] != 'Essex': continue
, вместо отступа важного кода.2. Большое вам спасибо, это возвращает серию разделенных значений, что означает, что когда я пытаюсь построить строку [2] против строки [3] вместо одной большой гистограммы со многими столбцами, я получаю много разных гистограмм, как мне сгруппировать всю строку [2] вместе как x и всестрока [3] вместе как y, чтобы первое значение x совпадало с первым значением y и так далее, так что извините за это, я очень новичок в Python, большое вам спасибо