为什么isinstance()根据实现为同一数据返回不同的值?

时间:2018-12-20 13:38:16

标签: python pandas boolean isinstance

我有一个熊猫数据框binnary_crossentropy,我要在其中检查数据类型

df

我有一个检查数据类型的函数,即一个值是否为标量

import pandas as pd
import numpy as np

df
>>> a1    a2    a3    a4
0   5     10.08 22.9  50.45
1   25    13.80 43.0  NaN
2   2     8.30  15.0  17.00
print(df.dtypes)
>>>
a1        int64
a2     float64
a3     float64
a4     float64
dtype: object

现在,如果我跑步

def isScalar(a):
    if isinstance(a, (int, float, np.int64, np.float64)):
        return True
    else:
        return False

我们看到df.applymap(isScalar) >>> a1 a2 a3 a3 0 False True True True 1 False True True True 2 False True True True 列全为False,这与我通过a1运行单个值是否矛盾

isScalar()

这是怎么回事? print(type(df.a1[1])) >>> numpy.int64 print(isScalar(df.a1[1])) >>> True 返回的a1的值都应该为True。

0 个答案:

没有答案