cuando se llama a mi función f con una variable, quiero verificar si var es un marco de datos de pandas:
def f(var):
if var == pd.DataFrame():
print "do stuff"
Supongo que la solución podría ser bastante simple, pero incluso con
def f(var):
if var.values != None:
print "do stuff"
No puedo hacer que funcione como se esperaba.

vares igual a un marco de datos vacío". Lo que realmente quieres es "si el tipo devares igual al tipopd.DataFrame". Puede verificar eso usandoisinstanceRespuestas:
Uso
isinstance, nada más:PEP8 dice explícitamente que esa
isinstancees la forma preferida de verificar tiposY ni siquiera pienses en
isinstancemaneja la herencia (consulte ¿Cuáles son las diferencias entre type () e isinstance ()? ). Por ejemplo, le dirá si una variable es una cadena (ya seastrounicode), porque derivan debasestring)Específicamente para
pandasDataFrameobjetos:fuente
Use la
isinstance()función incorporada.fuente
import pandas as pd, sino simplementeimport pandas? Simplemente realice unaoren ambas posibilidades, o ¿hay algo más sofisticado que no conozca?import pandas.DataFrame as panda_typey luego adentro y luego verificar el tipo de matriz usandoisinstance(var, panda_type)