检查数据帧是否是布尔型pandas

时间:2014-02-24 08:40:18

标签: python pandas dataframe

我有一个pandas DataFrame如下:

In [108]: df1
Out[108]: 
                         v
t                         
2014-02-21 10:30:43  False
2014-02-21 10:31:34  False
2014-02-21 10:32:25  False
2014-02-21 10:33:17  False
2014-02-21 10:34:09  False
2014-02-21 10:35:00  False
2014-02-21 10:35:51  False

我需要检查此数据框的dtype是否为bool。我尝试过:

In [109]: print isinstance(df1, bool)
False

**它应该返回** True ****

我该怎么做?

参考:check if variable is dataframe

1 个答案:

答案 0 :(得分:7)

您可以打印列的dtypes

In [2]:

import pandas as pd

df = pd.DataFrame({'a':[True,False,False]})
df
Out[2]:
       a
0   True
1  False
2  False

[3 rows x 1 columns]

In [3]:

df.dtypes

Out[3]:
a    bool
dtype: object
In [4]:

df.a.dtypes
Out[4]:
dtype('bool')

因此,在您的情况下df1.v.dtypes应该打印与上面相同的输出

另外需要注意的是isinstance(df, bool)无法正常工作,因为它是大熊猫数据帧或更准确:

In [7]:

type(df)
Out[7]:
pandas.core.frame.DataFrame

需要注意的重要一点是dtypes实际上是numpy.dtype你可以这样做来比较类型的名称和字符串,但我认为isinstance更清晰,更可取在我看来:

In [13]:

df.a.dtypes.name == 'bool'
Out[13]:
True