Как изменить несколько строк, чтобы плавать в файле, а затем усреднить сумму без ошибок? - PullRequest
0 голосов
/ 07 мая 2019

Я очень новичок в кодировании, поэтому, пожалуйста, уточните и используйте примеры для объяснения.У меня есть текстовый файл, который имеет много номеров вместе с именами и другими ул.Мне нужно знать, как я могу преобразовать числа, которые в настоящее время являются str, в числа с плавающей точкой, чтобы я мог вычислить среднее значение.

Я пытался использовать str как число с плавающей точкой, но я получаю ошибку TypeError: неподдерживаемый тип (ы) операнда для+: 'int' и 'str', которые ожидаются

Я также пытался установить str для float, но он дает мне

Traceback (последний вызов был последним): Файл "C: \Users \ leona \ Desktop \ School Work \ moretesting.py ", строка 9, в среднем = сумма (num1) / len (num1) TypeError: объект с плавающей точкой не повторяется

file = input("Enter a filename: ")

with open(file, "r") as f:

   next(f)

   for line in f:

       lines = line.split(",")

       num1 = float(lines[6])

       average = sum(num1) / len(num1)

       print(average)

Файл имеетэто внутри (только часть текстового файла, потому что его путь к большому, но мне просто нужно понять, как сделать этот тип проблемы):

zip,eiaid,utility_name,state,service_type,ownership,comm_rate,ind_rate,res_rate
52346,9417,Interstate Power and Light Co,IA,Bundled,Investor Owned,0.0922343168969,0.0589686412318,0.130070934252
72424,814,Entergy Arkansas Inc,AR,Bundled,Investor Owned,0.0735129328027,0.0594501735324,0.0908957415387


Traceback (most recent call last):
  File "C:\Users\leona\Desktop\School Work\moretesting.py", line 9, in <module>
    average = sum(num1) / len(num1)
TypeError: 'float' object is not iterable

1 Ответ

0 голосов
/ 07 мая 2019

Вы можете добавить значения в этом столбце в список, а затем получить среднее значение списка следующим образом:

file = input("Enter a filename: ")

with open(file, "r") as f:

  next(f)
  num_list = []

  for line in f:
    lines = line.split(",")
    num_list.append(float(lines[6])

  average = sum(l) / float(len(l))
  print(average)

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