Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.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,我搜索了一下,但找不到一个好答案。我想创建一个与另一个数据框具有相同维度的空数据框,以便添加新列。今天,我创建了一个填充了零的空数据帧,然后删除了零列。我希望有更好的办法,但找不到答案。有人能帮我吗 我今天真的很喜欢这个,它很管用,但它很难看 df_copy = pandas.DataFrame(numpy.zeros(len(df_original.index))) df_copy = df_copy.drop([0],axis=1) 现在我可以在处理数据时添加新列。所以基本上我想要一个

我搜索了一下,但找不到一个好答案。我想创建一个与另一个数据框具有相同维度的空数据框,以便添加新列。今天,我创建了一个填充了零的空数据帧,然后删除了零列。我希望有更好的办法,但找不到答案。有人能帮我吗

我今天真的很喜欢这个,它很管用,但它很难看

df_copy = pandas.DataFrame(numpy.zeros(len(df_original.index))) 
df_copy = df_copy.drop([0],axis=1) 
现在我可以在处理数据时添加新列。所以基本上我想要一个与另一个数据帧具有相同维度的空数据帧

df_copy["price"] = pricesList
df_copy["size"] = sizesList

编辑:另一个密切相关的问题:如何创建维度为mxn的空数据框?我在下面得到了如何创建维度为1xn的空数据帧的答案,这是通过设置索引来实现的。但是如何创建一个填充了零的空nxm数据帧呢?我之所以这么问,是因为我怀疑(?)创建一个零填充的数据帧,然后根据需要替换每个元素会更快。另一种方法是创建一个维度为1xn的空数据框,然后根据需要添加列——我听说这很慢。因此,使用nxm维度创建一个空数据框,然后根据需要替换元素(通过将列表复制到每列)可能会更快。假设一列有100行,我创建了一个有25行的子列表,所以我只需将此列表复制到正确的子列,然后重复。这比添加新列快吗

创建与另一个数据帧具有相同索引和列的空数据帧:

import pandas as pd 
df_copy = pd.DataFrame(index=df_original.index,columns=df_original.columns)
import pandas as pd
df_copy = pd.DataFrame().reindex_like(df_original)
@GaspareBonventre的速度可能会很慢,因为使用了熊猫数据帧构造函数。我发现这样做要快得多

import numpy as np
df_copy = pd.DataFrame(np.zeros(df_original.shape))
df_copy.index = df_original.index
df_copy.columns = df_original.columns

对于访问此页面并希望创建具有相同列、相同数据类型且无行的数据帧的任何人:

将熊猫作为pd导入
df_copy=df_original.iloc[0:0,:].copy()

您不需要用零填充它,它可以是空的开始:
pd.DataFrame(index=df_original.index)
通常创建一个空帧,然后逐列填充它不是很有效;改为使用dict/list,或创建子帧和concatthem@Jeff你能给出两种方法的示例代码吗?就几行。非常感谢(也很适合将来参考)文档中的大量示例:如何选择一个答案作为正确答案?我按下了橙色箭头,所以现在显示为“2”,对吗?我已经编辑了我的问题,并添加了一个密切相关的后续问题。我不确定这是否有效。当我这样做时,数据框不是空的,而是返回所有项目作为NaN。它不是空的,完全是NaN。您可以将
.dropna()
添加到表达式中以清空所有NaN条目。如果您只需要相同的列,但不需要NaN的行,可以使用
df_copy=pd.DataFrame().reindex(columns=df_original.columns)
这将创建一个充满NaN的数据帧