М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет253/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   249   250   251   252   253   254   255   256   ...   334
Байланысты:
Изучаем Python


Глава 16 • Загрузка данных
формат хорошо подходит для программной обработки и извлечения значений, а это 
ускоряет процесс анализа.
Начнем с небольшого набора погодных данных в формате CSV, записанного 
в Ситке; файл с данными можно загрузить по адресу 
https://www .nostarch .com/
pythoncrashcourse2e/
. Создайте подкаталог с именем 
data
в каталоге, в котором со-
храняются программы этой главы. Скопируйте в созданный каталог файл 
sitka_
weather_07-2018_simple .csv
. (После загрузки ресурсов книги в вашем распоряжении 
появятся все необходимые файлы для этого проекта.)
ПРИМЕЧАНИЕ
Погодные данные для этого проекта были загружены с сайта 
https://
ncdc .noaa .gov/cdo-web/
.
Разбор заголовка файлов CSV
Модуль Python 
csv
из стандартной библиотеки разбирает строки файла CSV 
и позволяет быстро извлечь нужные значения. Начнем с первой строки файла, 
которая содержит серию заголовков данных. Заголовки описывают информацию, 
хранящуюся в данных:
sitka_highs.py
import csv
filename = 'data/sitka_weather_07-2018_simple.csv'

with open(filename) as f:

reader = csv.reader(f)

header_row = next(reader)
print(header_row)
После импортирования модуля 
csv
имя обрабатываемого файла сохраняется 
в переменной 
filename
. Затем файл открывается, а полученный объект сохраняется 
в переменной 
f

. Далее программа вызывает метод 
csv.reader()
и передает ему 
объект файла в аргументе, чтобы создать объект чтения данных для этого файла 


Объект чтения данных сохраняется в переменной 
reader
.
Модуль 
csv
содержит функцию 
next()
, которая возвращает следующую строку 
файла для полученного объекта чтения данных. В следующем листинге функция 
next()
вызывается только один раз для получения первой строки файла, содержа-
щей заголовки 

. Возвращенные данные сохраняются в 
header_row
. Как видите, 
header_row
содержит осмысленные имена заголовков, которые сообщают, какая 
информация содержится в каждой строке данных:
['STATION', 'NAME', 'DATE', 'PRCP', 'TAVG', 'TMAX', 'TMIN']
Объект 
reader
обрабатывает первую строку значений, разделенных запятыми, и со-
храняет все значения из строки в списке. Заголовок 
STATION
представляет код метео-
рологической станции, зарегистрировавшей данные. Позиция заголовка указывает на 
то, что первым значением в каждой из следующих строк является код метеостанции. 


Формат CSV
349
Остальные заголовки сообщают, какая информация хранится в соответствующем 
поле. В данном примере нас интересуют значения даты, высокой температуры (
TMAX

и низкой температуры (
TMIN
). Мы используем простой набор данных, содержащий 
информацию только об уровне осадков и температуре. Вы также можете загрузить 
собственный набор погодных данных и включить в обработку другие показатели: 
скорость и направление ветра, расширенные данные осадков и т. д.
Печать заголовков и их позиций
Чтобы читателю было проще понять структуру данных в файле, выведем каждый 
заголовок и его позицию в списке:


Достарыңызбен бөлісу:
1   ...   249   250   251   252   253   254   255   256   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет