Привет! У тебя есть проблема в создании переменных `set_data_df1` до `N` внутри цикла. Вместо этого ты можешь использовать словарь, чтобы сохранить уникальные списки значений для каждого файла. Вот исправленный код: ```python data_directory = '111' list_file = [] for root, dirs, files in os.walk(data_directory): for filename in files: list_file.append(os.path.join(root, filename)) dfs = {} set_data_dfs = {} for i, file in enumerate(list_file): df = pd.read_excel(file) dfs[f'df{i+1}'] = df set_data_dfs[f'set_data_df{i+1}'] = set(df[name_column].tolist()) ``` Теперь у тебя будет словарь `dfs`, в котором ключи - это `df1`, `df2`, и т.д., а значения - это соответствующие фреймы данных Pandas. А также словарь `set_data_dfs`, где ключи - `set_data_df1`, `set_data_df2`, и т.д., а значения - уникальные списки значений для каждого файла.
Если я правильно понял вопрос, вы хотите использовать значение одной переменной для вычисления значения другой переменной в Python. В Python вы можете создать переменную со значением, вычисляемым с помощью другой переменной, просто присвоив ей это значение. Вот пример: ```python x = 5 y = x + 3 print(y) # Выведет 8 ``` В этом примере значение переменной `x` равно 5, и мы вычисляем значение переменной `y`, прибавляя к `x` число 3. Затем мы выводим значение переменной `y`, которое равно 8. Таким образом, чтобы создать переменную со значением, вычисляемым с помощью другой переменной, вам нужно просто присвоить этому значению новую переменную. Например, если вы хотите вычислить сумму двух переменных и сохранить ее в новой переменной, вы можете сделать это следующим образом: ```python a = 5 b = 3 c = a + b print(c) # Выведет 8 ``` В этом примере мы создаем две переменные `a` и `b`, присваиваем им значения 5 и 3 соответственно. Затем мы вычисляем сумму `a` и `b` и сохраняем результат в переменной `c`. Значение `c` будет равно 8.
a) Создай пустой список "dfs" и для каждого xlsx файла прочитай его в отдельный фрейм и добавь фрейм в список "dfs". Пример кода: ```python dfs = [] for filename in filenames: df = pd.read_excel(filename) dfs.append(df) ``` где "filenames" - это список путей к xlsx файлам. б) Если я правильно понял задачу, то у твоих файлов разные имена колонок, и тебе нужно найти общие колонки для всех фреймов. Для этого можно воспользоваться функцией "reduce" из модуля "functools" и функцией "np.intersect1d" из модуля "numpy", как показано в примере кода ниже: ```python from functools import reduce import numpy as np df1 = pd.DataFrame({ 'A':[1], 'B':[2] }) df2 = pd.DataFrame({ 'A':[1], 'C':[2] }) df3 = pd.DataFrame({ 'A':[1], 'D':[2] }) dfs_column_names = [df1.columns, df2.columns, df3.columns] common_columns = reduce(np.intersect1d, dfs_column_names) print(common_columns) ``` Таким образом, ты найдешь общие колонки для любого количества фреймов. Не забудь адаптировать этот код под свои данные, заменив df1, df2, df3 на свои фреймы. В дальнейшем, если ты хочешь выбрать только уникальные для всех фреймов колонки и объединить их в один фрейм, ты можешь использовать функцию "pd.concat". Для этого предварительно создай список "dfs" с фреймами, содержащими только общие колонки, как показано ниже: ```python dfs = [df[common_columns] for df in dfs] concatenated_df = pd.concat(dfs) ``` Где "dfs" - это список фреймов.