Как преобразовать str в int из файла csv - PullRequest
0 голосов
/ 29 апреля 2020

Я тренируюсь с Python, и в упражнении я должен открыть файл .csv и выяснить, сколько раз в файле повторяется имя «Макс» в Калифорнии («CA») между 1950 и 2000 годами. Вот что я сделал:

import csv
counter = 0


for line in file:
    counter = counter + 1
    line_splitted = line.strip().split(",")
    if line_splitted[1] == "Max":
        print(line_splitted) 

Извлечение вывода (записей много больше):

['17261', 'Max', '1965', 'M', 'AK', '6']
['20094', 'Max', '1983', 'M', 'AK', '5']
['20291', 'Max', '1984', 'M', 'AK', '5']
['20604', 'Max', '1986', 'M', 'AK', '10']
['20786', 'Max', '1987', 'M', 'AK', '10']

Тогда я написал:

if line_splitted[1] == "Max" and line_splitted[2] >= 1950 and line_splitted[2] <= 2000 and line_splitted[3] == "M" and line_splitted[4]== "CA":
print(line_splitted)
else:
    continue

И вот результат:

TypeError                                 Traceback (most recent call last)
<ipython-input-53-d4b5d798cf33> in <module>
      8     line_splitted = line.strip().split(",")
      9     if line_splitted[1] == "Max":
---> 10         if line_splitted[1] == "Max" and line_splitted[2] >= 1950 and line_splitted[2] <= 2000 and line_splitted[3] == "M" and line_splitted[4]== "CA":
     11             print(line_splitted)
     12 

TypeError: '>=' not supported between instances of 'str' and 'int'

Я знаю, что должен сказать Python, чтобы преобразовать запись в индексе 2 в целые числа, но я не знаю, как это сделать. Более того, я подозреваю, что мое решение слишком длинное, чтобы извлечь нужную мне информацию. Заранее большое спасибо за любые предложения.

1 Ответ

1 голос
/ 29 апреля 2020

Самый простой способ (для вашего примера), вероятно, сравнить со строкой:

and line_splitted[2] >= "1950"

Таким образом, вам не нужно сначала преобразовывать в целое число.

Это будет только работает, если длина всех этих строк ровно 4 символа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...