运行带有python的python:dtype输出不稳定

时间:2019-01-25 17:16:48

标签: python pandas sublimetext3

我尝试多次运行以下代码。输出有时为“ True”(我所期望的),有时为“ False”。崇高有什么问题吗?我用jupyter笔记本进行了测试,输出始终为“ True”。

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 python3.6。崇高版本:3.1.1。熊猫版:0.23.4

1 个答案:

答案 0 :(得分:1)

您的示例输出不是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)

因此您现在可以执行isin

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

a    True
dtype: bool