PandasDataFrame的空副本

我正在寻找一种有效的习惯用法来创建一个新的 Pandas DataFrame,它的列和类型与现有的Pandas相同DataFrame,但没有行。以下工作,但可能比它可能效率低得多,因为它必须创建一个长索引结构,然后为每一行评估它。我假设这O(n)是行数,我想找到一个O(1)解决方案(这看起来还不错)。

out = df.loc[np.repeat(False, df.shape[0])].copy()

copy()在那里,因为老实说,我不知道在什么情况下我会得到副本或查看原件。

为了在 R 中进行比较,一个很好的习惯用法是 do df[0,],因为没有第零行。 df[NULL,]也有效。

回答

我认为熊猫中的等价物将使用切片 iloc

df = pd.DataFrame({'A' : [0,1,2,3], 'B' : [4,5,6,7]})
print(df1)
   A  B
0  0  4
1  1  5
2  2  6
3  3  7

df1 = df.iloc[:0].copy()

print(df1)
Empty DataFrame
Columns: [A, B]
Index: []

  • Aha - I was trying to use `x.loc[:0]`, but with `iloc` it works quite well, thanks.

以上是PandasDataFrame的空副本的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>