【问题标题】:Creating a numpy array by selecting pandas data frame columns based on condition on another data frame通过根据另一个数据框上的条件选择 pandas 数据框列来创建一个 numpy 数组
【发布时间】:2019-08-14 07:00:02
【问题描述】:

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

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

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

提前致谢

【问题讨论】:

  • 你能举一些例子更具体吗
  • 假设您有一个 256 行和 800 列的训练 (df) 数据集,即 800 个 256 像素的实例(图像),并且您还有另一个称为标签 1 * 800 的 df,每个训练图像数据集有一个标签到标签数据集的对应位置。标签是 0-9,您想提取每个全零并创建一个新的 numpy 数组,全部为一个新的 numpy 数组,依此类推

标签: python pandas numpy iterator


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    • 2020-03-20
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多