我想找到一种干净的方法来检查列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))
答案 0 :(得分:-1)
您可以执行以下操作:
import numpy as np
rdf.A.dtype is np.dtype('int64')
# True