Я использовал тот же файл, который вы прикрепили в вашем примере. Я создал эту функцию, надеюсь, она поможет:
with open("test.txt","r") as reader:
lines = reader.readlines()
for line in lines[2:]:
line = line.replace(".","") # Remove points to have the full value
country, number_infections, number_deaths = line.strip().split()
try:
number_infections = float(number_infections)
number_deaths = float(number_deaths)
except Exception as e:
print(f"[WARNING] Could not convert Number of Infections {number_infections} or Number of Deaths {number_deaths} to float for Country: {country}\n")
continue
ratio = number_deaths/number_infections
print(f"Country: {country} D/I ratio: {ratio}")
Как видите, я избегал заголовков вашего файла, используя lines[2:]
, что означает, что я начну со строки 3 вашего файла. Кроме того, добавлена логика проб / исключений c, чтобы избежать конвертирования не с плавающей запятой. Надеюсь, это поможет!
Редактировать Только что заметил, что формат для тысяч используется с "." вместо "," в этом случае период был удален в line 7
.
Результат этого выполнения:
Country: USA D/I ratio: 0.017980636237897647
Country: Netherlands D/I ratio: 0.07095527332965212
[WARNING] Could not convert Number of Infections 90.0 or Number of Deaths NA to float for Country: Georgia
Country: Germany D/I ratio: 0.007811561110443456