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



Pdf көрінісі
бет259/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   255   256   257   258   259   260   261   262   ...   334
Байланысты:
Изучаем Python

death_valley_highs_lows.py
import csv
filename = 'data/death_valley_2018_simple.csv'
with open(filename) as f:
reader = csv.reader(f)
header_row = next(reader)
for index, column_header in enumerate(header_row):
print(index, column_header)
Результат выглядит так:
0 STATION
1 NAME
2 DATE
3 PRCP
4 TMAX
5 TMIN
6 TOBS
Дата находится в той же позиции с индексом 2. Но температурные максимумы 
и минимумы находятся в позициях с индексами 4 и 5, поэтому нам придется из-
менить индексы в программе в соответствии с новыми позициями. Вместо того 
чтобы включать средние показания температуры за день, эта станция регистрирует 
TOBS — денные за конкретное время наблюдений.
Я удалил одно из показаний температуры из файла, чтобы продемонстрировать, что 
происходит при отсутствии данных в файле. Внесите изменения в 
sitka_highs_lows .
py
, чтобы построить график температур для Долины Смерти по только что опре-
деленным индексам, и проследите за происходящим:


358
Глава 16 • Загрузка данных
death_valley_highs_lows.py
...
filename = 'data/death_valley_2018_simple.csv'
with open(filename) as f:
...
# Получение дат, температурных минимумов и максимумов из файла.
dates, highs, lows = [], [], []
for row in reader:
current_date = datetime.strptime(row[2], '%Y-%m-%d')

high = int(row[4])
low = int(row[5])
dates.append(current_date)
...
В точке 

индексы обновляются в соответствии с позициями 
TMAX
и 
TMIN
в данном 
файле.
При запуске программы происходит ошибка, как видно из последней строки сле-
дующего вывода:
Traceback (most recent call last): 
File "death_valley_highs_lows.py", line 15, in  
high = int(row[4]) 
ValueError: invalid literal for int() with base 10: ''
Трассировка показывает, что Python не может обработать максимальную темпе-
ратуру для одной из дат, потому что не может преобразовать пустую строку 
('')
в целое число. Вместо того чтобы копаться в данных и искать отсутствующее зна-
чение, мы обработаем ситуации с отсутствием данных напрямую.
При чтении данных из CSV-файла будет выполняться код проверки ошибок для 
обработки исключений, которые могут возникнуть при разборе наборов данных. 
Вот как это делается:


Достарыңызбен бөлісу:
1   ...   255   256   257   258   259   260   261   262   ...   334




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

    Басты бет