创建与另一个尺寸相同的空Dataframe?

Orv*_*var 18 python pandas

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

我今天喜欢这个并且它有效,但它非常难看.

df_copy = pandas.DataFrame(numpy.zeros(len(df_original.index))) 
df_copy = df_copy.drop([0],axis=1) 
Run Code Online (Sandbox Code Playgroud)

现在我可以在处理数据时添加新列.所以基本上我想要一个与另一个数据帧具有相同尺寸的空数据帧.

df_copy["price"] = pricesList
df_copy["size"] = sizesList
Run Code Online (Sandbox Code Playgroud)

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

kad*_*dee 25

使用与另一个数据帧相同的索引和列创建空数据框:

import pandas as pd
df_copy = pd.DataFrame().reindex_like(df_original)
Run Code Online (Sandbox Code Playgroud)

  • 如果您只想要相同的列但没有带有 nan 的行,则可以使用 df_copy = pd.DataFrame().reindex(columns=df_original.columns)` (6认同)
  • 不确定这是否有效。当我这样做时,数据框不是将所有项目返回为空,而是将所有项目返回为 NaN。它不是空的,完全充满了 NaN。 (2认同)
  • 您可以将“.dropna()”添加到表达式中以清空所有 NaN 条目。 (2认同)

Ben*_*ers 23

对于来到此页面希望创建相同列、相同 dtypes 且没有行的数据框的任何人:

import pandas as pd
df_copy = df_original.iloc[0:0,:].copy()
Run Code Online (Sandbox Code Playgroud)


Gas*_*tre 7

import pandas as pd 
df_copy = pd.DataFrame(index=df_original.index,columns=df_original.columns)
Run Code Online (Sandbox Code Playgroud)