我有一个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 ****
我该怎么做?
答案 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