使用sublime:dtype输出运行python不稳定

使用sublime:dtype输出运行python不稳定,python,pandas,sublimetext3,Python,Pandas,Sublimetext3,我多次尝试运行以下代码。输出有时为“真”(我所期望的),有时为“假”。升华有什么问题吗?我用jupyter笔记本测试了它,结果总是“正确” import pandas as pd df = pd.DataFrame({'a':[1,2,3]}) print(df.dtypes.isin(['int64'])) 如果我打印df.dtypes,输出总是“int64” print(df.dtypes) >> a int64 dtype: object Python版本:

我多次尝试运行以下代码。输出有时为“真”(我所期望的),有时为“假”。升华有什么问题吗?我用jupyter笔记本测试了它,结果总是“正确”

import pandas as pd 

df = pd.DataFrame({'a':[1,2,3]})
print(df.dtypes.isin(['int64']))
如果我打印df.dtypes,输出总是“int64”

print(df.dtypes)
>> a    int64
   dtype: object

Python版本:anaconda Python 3.6。崇高版本:3.1.1。pandas版本:0.23.4

您示例的输出不是
True
而是
False
。如果执行
df.dtypes.values
操作,您将看到它不是字符串
'int64'
而是
dtype('int64')
,因此
isin(['int64'])
应始终返回
False
我在
Jupyter
中测试过,并且输出总是
False

df = pd.DataFrame({'a':[1,2,3]})
print(df.dtypes.isin(['int64']))

a    False
dtype: bool

print(df.dtypes.values)
array([dtype('int64')], dtype=object)
解决方案是将
df.dtypes
转换为
str

df.dtypes.apply(str).values

array(['int64'], dtype=object)
因此,您现在可以执行以下操作:

df.dtypes.apply(str).isin(['int64'])

a    True
dtype: bool

@克里斯:谢谢你的评论。将“int64”更改为np.dtype(“int64”)似乎有帮助。但是在我的jupyter笔记本测试中,isin(['int64'])的返回确实是“真的”。我不知道为什么。也许是因为numpy的版本不同。