我需要测试代码在DataFrame没有行的情况下能否正常工作。在SQL中,您可以使用truncate命令清除表中的所有行。我找到了Pandas的truncate命令,但无法删除最后一行。我尝试了这样做:
df.truncate(after=0, before=0)
...但它留下了第0行。有什么想法吗?
我需要测试代码在DataFrame没有行的情况下能否正常工作。在SQL中,您可以使用truncate命令清除表中的所有行。我找到了Pandas的truncate命令,但无法删除最后一行。我尝试了这样做:
df.truncate(after=0, before=0)
...但它留下了第0行。有什么想法吗?
你可以使用df.head(0)
In [3]: df = pd.DataFrame([{'foo': 1, 'bar': 2}, {'foo': 3, 'bar': 4}])
In [4]: df
Out[4]:
bar foo
0 2 1
1 4 3
In [5]: df.head(0)
Out[5]:
Empty DataFrame
Columns: [bar, foo]
Index: []
使用 drop
删除所有索引值:
df1 = df.drop(df.index)
或者只用 columns
参数进行创建 DataFrame
:
df1 = pd.DataFrame(columns=df.columns)
示例:
df = pd.DataFrame({'a':list('ab'), 'b':range(2)})
df1 = df.drop(df.index)
print (df1)
Empty DataFrame
Columns: [a, b]
Index: []
truncate
在我这边能正常工作。df.truncate(before=-1, after=-1)
Out[835]:
Empty DataFrame
Columns: [A, B, C]
Index: []
pd.__version__
的 '0.19.2'
版本。 - cardamom
before=1
吗? - Ctrl-CValueError: Truncate: 0 must be after 1
。 - cardamom