Я запустил скрипт на python, который создал несколько переменных.Теперь я хочу перебрать несколько фреймов данных (созданных сценарием), соответствующих определенному шаблону, и выполнить с ними простые операции.Сначала я хочу получить количество строк (с shape()
) каждого из фреймов данных в list_dfs
, как показано ниже:
['FAILEDRuns_0112',
'FAILEDRuns_0121',
'FAILEDRuns_0126',
'FAILEDRuns_0129',
'FAILEDRuns_0131',
'FAILEDRuns_0134',
'FAILEDRuns_0135',
'FAILEDRuns_0137',
'FAILEDRuns_0142',
'FAILEDRuns_0153',
'FAILEDRuns_0165',
'FAILEDRuns_0171',
'FAILEDRuns_0175']
Фактически, если я это сделаю:
for i in list(filter(failed_runs_finder.findall, dir())):
print(locals()[i].shape[0])
Я получаю количество строк, напечатанных на экране:
1
0
0
0
1
0
0
0
0
0
0
0
0
Содержит информацию, которая мне нужна, но не в том формате, который мне нужен.В конечном итоге мне нужно знать количество единиц и нолей, поэтому я подумал о том, чтобы получить представление о списке, чтобы в итоге сравнить общую сумму (т.е. число единиц) с длиной списка, то есть с общим числомelements.
Однако, если я это сделаю:
[locals()[i].shape[0] for i in list_dfs]
Я получу следующую ошибку:
KeyError: 'FAILEDRuns_0112'
Я не совсем понимаю, откуда исходит ошибка,Насколько я понимаю, это не с точки зрения синтаксиса понимания списка.
Имеет ли это какое-либо отношение к использованию locals()
в понимании списка?
Мой второй вариант будетпостроить df итеративно и получить сумму, хотя я думаю, что это проще с пониманием списка, и я не совсем понимаю, откуда исходит ошибка.