首页 > 解决方案 > 通过根据另一个数据框上的条件选择 pandas 数据框列来创建一个 numpy 数组

问题描述

我是 Pandas 的新手,我正在尝试几个小时来解决我的问题,但我还没有设法解决它。我见过几个 stackoverflow 对话,但没有一个与我的问题相似。

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

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

提前致谢

标签: pythonpandasnumpyiterator

解决方案


这应该有效: 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, :])

推荐阅读