如何创建与另一个相同维度的空DataFrame?
我查了一下,但找不到好的答案。我想创建一个和另一个数据框(dataframe)尺寸相同的空数据框,这样我就可以添加新列。现在我创建一个填满零的空数据框,然后再删除那个零列。我希望有更好的方法,但找不到答案。有人能帮帮我吗?
我现在是这样做的,虽然能用,但看起来很丑。
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行的子列表,然后把这个列表复制到正确的子列,重复这个过程。这比添加新列要快吗?
5 个回答
2
这个功能就是帮你保留 columns
的 :)
empty_df = df.iloc[:0]
4
@GaspareBonventre的回答可能会比较慢,这是因为Pandas DataFrame构造函数的一个问题。我发现这样做会快很多:
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
16
这段代码的作用是……
首先,它会……然后,它会……接着,它会……最后,结果会是……
简单来说,这段代码就是在做……
如果你对这个过程有疑问,可以想象成……
总之,这段代码的核心就是……
import pandas as pd
df_copy = pd.DataFrame(index=df_original.index,columns=df_original.columns)
48
如果你来到这个页面是想创建一个没有任何数据的、列名和数据类型都一样的表格(dataframe),那么你可以参考下面的代码:
import pandas as pd
df_copy = df_original.iloc[:0,:].copy()
55
创建一个空的数据框,它的索引和列名和另一个数据框完全一样:
import pandas as pd
df_copy = pd.DataFrame().reindex_like(df_original)