Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将零向量前置到数据帧?_Python_Pandas - Fatal编程技术网

Python 如何将零向量前置到数据帧?

Python 如何将零向量前置到数据帧?,python,pandas,Python,Pandas,我有一个pandas变量X,它的形状(14931381) 这是14931个示例,每个示例都有381个特性。我想为每个示例添加483个特性(每个特性都有一个零)值,但我希望它们在381个现有特性之前 如何做到这一点?创建一个由零组成的数据帧并调用pd.concat v = pd.DataFrame(0, index=df.index, columns=range(483)) df = pd.concat([v, df], axis=1) 创建一个零数据帧并调用pd.concat v = pd.D

我有一个
pandas
变量
X
,它的
形状
(14931381)

这是14931个示例,每个示例都有381个特性。我想为每个示例添加483个特性(每个特性都有一个零)值,但我希望它们在381个现有特性之前


如何做到这一点?

创建一个由零组成的数据帧并调用
pd.concat

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

创建一个零数据帧并调用
pd.concat

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

出于演示目的,让我们设置一个较小的数据帧 (7行2列,具有要素(列)名称
f1
f2
,…):

然后,让我们创建一个填充了零的数据帧,以便 在df前面加上前缀(3列而不是483列):

如你所见:

  • 我将“新”列命名为
    p1
    p2
    等等
  • 索引是df中索引的副本(这将很重要 在下一阶段)
最后一步是连接这两个数据帧并替换 df:

最后一步是将添加的列数更改为
正确的值。

为了演示,让我们设置一个较小的数据帧 (7行2列,具有要素(列)名称
f1
f2
,…):

然后,让我们创建一个填充了零的数据帧,以便 在df前面加上前缀(3列而不是483列):

如你所见:

  • 我将“新”列命名为
    p1
    p2
    等等
  • 索引是df中索引的副本(这将很重要 在下一阶段)
最后一步是连接这两个数据帧并替换 df:

最后一步是将添加的列数更改为
正确的值。

使用与原始数据帧相同的索引和14931行483个
0
值构建一个新的数据帧。在原始数据帧之前使用
axis=1
连接新数据帧,以进行列连接。将其分配给原始dataframe变量。使用与原始dataframe相同的索引和14931行的483个
0
值构建一个新dataframe。在原始数据帧之前使用
axis=1
连接新数据帧,以进行列连接。将其分配给原始数据帧变量。
index=df.index
做什么?为了正确执行连接,两个数据帧都应该有“相应”的索引。因为我不确定df中索引的内容,所以我用相同的索引(从df复制)创建了zz。索引做什么?为了正确执行联接,两个数据帧都应该有“对应”的索引。因为我不确定df中索引的内容,所以我使用相同的索引(从df复制)创建了zz。
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)
df = zz.join(df)