Как использовать имя локальной переменной как часть имени глобальной переменной в Python - PullRequest
0 голосов
/ 24 июня 2019

У меня есть словарь, который содержит словари, которые содержат фреймы данных

dict
key value
s0   sub_dict1
s1   sub_dict2

sub_dict1
key value
x1  df1
x2  df2


df1
time val other_data_i_don't_want
0:01  1       999
0:34  2       999

В конечном итоге мне нужен словарь, который содержит фреймы данных в качестве значений

dict_new
key value
s0  df

, где df

time val_x1 val_x2 val_x3 
0:01   1         1       1 

и я хочу автоматизировать этот процесс в цикле for

до сих пор я сделал:

for key1 in dict.keys():
 for key2 in dict[key1].keys():
 global key1_key2
 sensor = str(key2)
 key1_key2 = dict[key1][key2][['time','val']]
 key1_key2.rename(columns = {"val":'val_'+key2})

, но определено, что key1_key2 имеет имя "key1_key2", ноЯ на самом деле хочу создать несколько фреймов данных с именами "s0_x1" "s0_x2" "s1_x1" "s1_x2"

, и оператор переименования также не работает.

после того, как у меня есть "s0_x1"и т. д. я могу сделать полное внешнее соединение, чтобы создать df, я хочуЯ просто не могу понять, как определить их как глобальные переменные в первом случае

1 Ответ

0 голосов
/ 24 июня 2019

Вместо глобальных переменных, вы можете вместо этого создать диктовку? Что-то вроде

dataframes = {}
for sN, sub_dictN in dict.items():
  for xN, dfN in sub_dictN.items():
    current_dataframe = '{}_{}'.format(sN, xN)
    dataframes[current_dataframe] = {}  # instead of global
    # fill the dataframe with data as you like

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...