Мои данные — это список списков с r строками различной длины, содержащими строки данных, некоторые из которых являются числами с плавающей запятой, но были прочитаны как строки.
Я хотел бы сначала пройтись по всем строкам, затем по всем элементам, а затем применить функцию try/except к указанным элементам, чтобы найти первый экземпляр строки в строке. который может быть преобразован в число с плавающей запятой.
Мой код выводит, как и ожидалось, когда я явно указываю второму циклу, для какой строки он должен выполнять операцию, однако, когда я пытаюсь перебрать все строки, он выводит ожидаемый результат только для первой строки и ни одной из следующих строк.
Ожидаемый выходной список float_index (при длине = len(data)) будет списком с индексом первого преобразуемого элемента для всех строк.
Вот код с явным выводом определения строки [2], так как для второй строки это 2-й элемент, который преобразуется в число с плавающей запятой:
data = [['Mittl.', 'Halleninnenpegel,', 'Volllast', 'Li', '124', '132', '132', '132', '139', '138', '141', '139', '131', '146'],
['Abgaskamin', 'LW', '130', '129', '121', '104', '100', '96', '94', '89', '86', '108']]
row= 1
floats = []
float_index = []
for i in data[row]:
try:
floats.append(str(int(float(i))))
float_index = [data[row].index(floats[0])]
except:
pass
print(float_index)
Вот код, зацикливающий все строки данных, но выводящий ожидаемое значение только для первой строки float_index = [4], в то время как ожидаемое значение было float_index = [4,2]:
data = [['Mittl.', 'Halleninnenpegel,', 'Volllast', 'Li', '124', '132', '132', '132', '139', '138', '141', '139', '131', '146'],
['Abgaskamin', 'LW', '130', '129', '121', '104', '100', '96', '94', '89', '86', '108']]
floats = []
float_index = []
for r in range(len(data)):
for i in data[r]:
try:
floats.append(str(int(float(i))))
float_index = [data[r].index(floats[0])]
except:
pass
print(float_index)
Список floats, вероятно, является проблемой - он просто собирает все конвертируемые элементы в длинный список с одной строкой - мне нужно, чтобы список floats был таким же, как data, что он помещает все конвертируемые элементы в новые строки, так что с помощью floats[0] я нахожу первые элементы для всех строк, но почему-то не могу понять, как добиться это.
Буду признателен за помощь, спасибо!