У меня есть некоторые данные, которые я скопировал и вставил из Википедии, и я занимаюсь их очисткой. Я хочу преобразовать все строки, которые являются числовыми, в числа с плавающей запятой. По какой-то причине числовые строки не распознаются функцией str.isnumeric(), за исключением первой «100.0».
for n,i in enumerate(PercentageWorldEmissions):
if str.isnumeric(i):
PercentageWorldEmissions[n] = float(i)
else:
continue
вывод:
['% CO2 emissions by country', 100.0, '29.55', '14.95', '9.57', '6.56', '4.95', '3.58', '2.15', '1.74', '1.73', '1.71', '1.58', '1.40', '1.38', '1.38', '1.28', '1.27', '1.16', '1.15', '1.10', '0.99', '0.94', '0.91', '0.84', '0.78', '0.76', '0.70', '0.68', '0.66', '0.64', '0.63', '0.56', '0.56', '0.55', '0.53', '0.44', '0.44', '0.40', '0.39', '0.34', '0.31', '0.28', '0.27', '0.27', '0.26', '0.25', '0.22', '0.22', '0.21']
где PercentageWorldEmissions выглядит идентично выходным данным, за исключением элемента 100.0, который изначально был равен «100.0».
почему isnumeric не распознает другие строки? есть ли скрытые символы, которые я не вижу? Я попробовал метод repr(), который видел на другой странице, но он ничего не выявил.
Я также пробовал isdigit, isalnum, isdecimal, все безрезультатно ... любая помощь очень ценится!