使用sublime:dtype输出运行python不稳定
我多次尝试运行以下代码。输出有时为“真”(我所期望的),有时为“假”。升华有什么问题吗?我用jupyter笔记本测试了它,结果总是“正确”使用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版本:
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的版本不同。