我正在寻找一个有效的成语来创建一个新的 Pandas DataFrame
具有与现有 DataFrame
相同的列和类型,但没有行。以下工作,但可能比它可能效率低得多,因为它必须创建一个长索引结构,然后为每一行评估它。我假设那是 O(n)
在行数中,我想找到一个 O(1)
解决方案(看起来还不错)。
out = df.loc[np.repeat(False, df.shape[0])].copy()
我有 copy()
在那里,因为老实说,我不知道在什么情况下我会得到副本或查看原件。为了在 R 中进行比较,一个不错的习惯用法是做
df[0,]
,因为没有第零行。 df[NULL,]
也有效。
最佳答案
我认为 Pandas 中的等价物将使用 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: []
关于pandas - Pandas DataFrame 的空副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65188612/