通过基于另一个数据框上的条件选择pandas数据框列来创建numpy数组

时间:2019-03-23 13:08:05

标签: python pandas numpy iterator

我是Pandas的新手,我正在努力解决自己的问题,但我还没有解决。我见过几次stackoverflow对话,但没有一个类似于我的问题。

我有两个数据框,形状为训练的(256,800)和标签(1,800),每个标签对应一个数字0-9,我想创建10个numpy数组,每个数组仅包含训练第i位数据。

如果第一个训练示例(1 * 256)的标签为0,则将训练的列(1 * 256)分配给第一个numpy数组,依此类推。即根据另一个数据框的条件来迭代分配给numpy数组的一个数据框。例如,如果我有89个“零”,则“零” numpy数组将为256 * 89。.

预先感谢

1 个答案:

答案 0 :(得分:0)

这应该起作用: dict是字典,键是标签。我假设标签是一行多列数据帧,这就是为什么我将其转置。

dict = {0:[], 1:[], 2:[], 3:[], 4:[], 5:[], 6:[], 7:[], 8:[], 9:[]}
for i in range(df.shape[0]):
    dict[labels.T.[i]].append(df.iloc[i, :])