跨多个数据框执行操作并追加到不同列表

时间:2020-01-15 13:52:35

标签: python list loops dictionary

我正在尝试在多个数据框中转换某些数据,这将返回不同的结果。因此,我想将这些结果附加到字典中的不同列表中。

我的方式可行,我想知道是否有更好的方法来实现这一目标?

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))

本质上,我想知道的是下面两行,是否有一些list / dict理解技巧和窍门可以使之更好。

myLists['dfList_y'].append(df_1.drop(group.columns, axis=1))
myLists['dfList_x'].append(df_2.drop(group.columns, axis=1))

编辑后续问题: 可以使用groupby名称来命名列表索引吗?因此,可以使用myLists['dfList_y]['group_1']

访问字典

0 个答案:

没有答案