如何在Pandas DataFrame前面添加零向量?

时间:2019-03-13 17:04:47

标签: python pandas

我有一个pandas变量X,它的shape(14931, 381)

共有14,931个示例,每个示例具有381个功能。我想为每个示例添加483个特征(每个特征都为零)值,除了我希望它们位于现有381个特征之前

这怎么办?

2 个答案:

答案 0 :(得分:3)

创建一个零的DataFrame并调用pd.concat

v = pd.DataFrame(0, index=df.index, columns=range(483))
df = pd.concat([v, df], axis=1)

答案 1 :(得分:1)

出于演示目的,我们设置一个较小的DataFrame (7行2列,功能(列)名称为f1f2,...):

df = pd.DataFrame(data={'f1': [ 1, 4, 6, 5, 7, 2, 3 ],
    'f2': [ 4, 6, 5, 0, 2, 3, 2 ]})

然后,我们创建一个填充零的DataFrame 放在 df 之前(3列,而不是您的483列):

zz = pd.DataFrame(data=np.zeros((df.shape[0], 3), dtype=int),
    columns=[ 'p' + str(n + 1) for n in range(3) ], index=df.index)

如您所见:

  • 我将“新”列命名为p1p2,依此类推,
  • 索引是 df 中索引的副本(这很重要 在下一阶段)。

最后一步是加入这两个DataFrame并替换为 df

df = zz.join(df)

您的最后一步是将添加的列数更改为 适当的值。