似乎在该线程中接受的空定义是仅具有零行的数据帧。但是在零行零列的空数据框和零行零列至少一列的空数据框之间有区别。在每种情况下,索引的长度都是0,并且empty = True,如下所示:
示例1:具有0行和0列的空数据框
In [1]: import pandas as pd
df1 = pd.DataFrame()
df1
Out[1]: Empty DataFrame
Columns: []
Index: []
In [2]: len(df1.index)
Out[2]: 0
In [3]: df1.empty
Out[3]: True
示例2:具有0行和至少1列的空数据框
In [4]: df2 = pd.DataFrame({'AA' : [], 'BB' : []})
df2
Out[4]: Empty DataFrame
Columns: [AA, BB]
Index: []
In [5]: len(df2.index)
Out[5]: 0
In [6]: df2.empty
Out[6]: True
区分没有标题和数据的数据帧或只是没有数据的数据帧的一种方法是测试列索引的长度。第一个加载的数据帧返回零列,第二个数据帧返回空列数。
In [7]: len(df1.columns)
Out[7]: 0
In [8]: len(df2.columns)
Out[8]: 2