我有一个字典,其中包含包含数据框的字典
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。我只是不知道如何在一开始将它们定义为全局变量
答案 0 :(得分:0)
您可以创建一个dict而不是全局变量吗?像
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