#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. Во-вторых, зачем вам нужны отдельные переменные для каждого кадра данных? Почему бы не использовать adict
для хранения ссылок на фреймы данных, например, по имени таблицы{"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, ...}