Я пытаюсь преобразовать некоторые данные в несколько фреймов данных, которые будут давать разные результаты. Поэтому я хочу добавить эти результаты в разные списки в словаре.
Пока мой путь работает, Мне было интересно, есть ли лучший способ добиться этого?
columns = ["Product_" + str(i) + "_flag" for i in np.arange(1, 6)] +\
["Product_" + str(i) + "_days" for i in np.arange(1, 6)]
## mock dfs
df_1 = pd.DataFrame(np.concatenate((np.random.binomial(1, 0.5, size=(5, 5)),
np.random.random_integers(0, 100, size=(5, 5))), axis=1),
columns=columns)
df_2 = pd.DataFrame(np.concatenate((np.random.binomial(1, 0.5, size=(5, 5)),
np.random.random_integers(0, 100, size=(5, 5))), axis=1),
columns=columns)
# list of dfs (not used)
dfList = [df_1, df_2]
# groupby object
grouped = df_1.groupby(lambda x: re.match("^(.*?)\_\S", x).group(), axis=1)
# dictionary of empty lists
my_list = ['dfList_y', 'dfList_x']
myLists = {key: [] for key in my_list}
# data manipulation
for name, group in grouped:
print('group name:', name)
print(group)
print(group.columns)
myLists['dfList_y'].append(df_1.drop(group.columns, axis=1))
myLists['dfList_x'].append(df_2.drop(group.columns, axis=1))
По сути, эти две строки ниже меня интересуют , если есть несколько советов и приемов для понимания списков / диктов, чтобы сделать это лучше.
myLists['dfList_y'].append(df_1.drop(group.columns, axis=1))
myLists['dfList_x'].append(df_2.drop(group.columns, axis=1))
РЕДАКТИРОВАТЬ: Дополнительный вопрос: Можно ли назвать список индексов с групповыми именами? Таким образом, можно получить доступ к dict, например, myLists['dfList_y]['group_1']