Если я правильно понимаю, проблема состоит в том, чтобы возвращать значение для каждого кадра данных в списке в зависимости от того, существует ли 0 в серии Test
каждого кадра данных.
Простопечати 'true'
или 'false'
может быть недостаточно, так как вам придется связать их с вашим списком кадров данных.Вместо этого я рекомендую использовать словарь для хранения ваших фреймов данных:
dict_of_dfs = {fn: pd.read_csv(fn) for fn in filenames}
Затем вы можете использовать словарь, чтобы сопоставить каждое имя файла с логическим значением в соответствии с вашим условием:
res = {fn: (df['test'] == 0).any() for fn, df in dict_of_dfs.items()}
Затем вы можете определить , какие фреймы данных удовлетворяют вашему условию, либо выполнив итерацию res.items()
, либо указав определенное имя файла с помощью res['myfile.csv']
.
Обратите внимание, что мы используем векторизованные операции, а не повторяем каждоеэлемент в серии по одному.Это особенность Pandas, которая отделяет ее от стандартного метода понимания списка Python или метода выражения генератора, который вы пытались использовать.Векторизованные операции обеспечивают эффективный доступ к смежным блокам памяти и должны быть предпочтительными, где это возможно.