Получение строки в списке, равной фрейму данных в списке

#python #pandas #dataframe #shortcut

Вопрос:

У меня есть список строк, содержащих имена таблиц:

 table = ['table A', 'table B', 'table C'.... 'table J']
 

У меня также есть список кадров данных:

 list_of_dataframes = [df1, df2, df3 ..]
 

Эти списки имеют одинаковую длину.

Как мне перебрать оба кадра данных и сделать их равными друг другу?

Мне удается зациклить их по отдельности следующим образом, но я хотел бы, чтобы они были равны друг другу таким образом df1 = table A .. df10 = table J .

Для петли я попробовал

 for i in table:
     i = l
for l in list_of_dataframes:
     l = i
 

Комментарии:

1. Во-первых, table A это недопустимый идентификатор в Python. Во-вторых, зачем вам нужны отдельные переменные для каждого кадра данных? Почему бы не использовать a dict для хранения ссылок на фреймы данных, например, по имени таблицы {"table A": df1, "table B": df2, ...} ?

2. Что вы пробовали? Что не работает в вашем решении?

Ответ №1:

Почему бы вам не создать словарь для этого?

Вы можете сделать что-то вроде:

 for i, item in enumerate(table):
    table_name = item.split()[1]
    dict_of_tables[table_name] = list_of_dataframes[i]
 

Ответ №2:

Словарь-гораздо более подходящий способ хранения этих кадров данных:

 >>> dict(zip(table, list_of_dataframes))
# {"table A": df1, "table B": df2, ...}
 

Или, если вы хотите обратиться к ним просто по их письму:

 >>> dict(zip("".join(table).replace("table ", ""), list_of_dataframes))
# {"A": df1, "B": df2, ...}