清洁检查dtype是否是类型的实例?

时间:2019-11-21 18:54:24

标签: python pandas

我想找到一种干净的方法来检查列dtype是否为int,int64,bool等。 目前,我正在检查第一个值类型。我一点都不干净。它可以为null,出于某些原因可以有混合类型。 有人想到一种更强大的方法吗?

    import pandas as pd
    import json
    from random import randint,choice,random
    import string

    def random_character():
        return choice(string.ascii_letters)
    def random_string(length=4):
        string_random = random_character()
        for i in range(length - 1):
            string_random += random_character()
        return string_random
    def random_df(nb_rows=7):
        out = []
        for i in range(nb_rows):
            out.append({
                'A': randint(0, 10),
                'B': random_string(),
                'C': round(random(), 2) * 100,
                'D': bool(randint(0, 1))
            })
        return pd.DataFrame(out)
    rdf=random_df(3)
    print(rdf.A.iloc[0],type(rdf.A.iloc[0]))
    print(isinstance(rdf.A.iloc[0],int64))

example of execution

1 个答案:

答案 0 :(得分:-1)

您可以执行以下操作:

import numpy as np
rdf.A.dtype is np.dtype('int64') 
# True