检查变量是否是数据帧
当我的函数f被一个变量调用时,我想检查var是否是一个熊猫数据框:
def f(var):
if var == pd.DataFrame():
print "do stuff"
我想这个解决方案可能很简单,但即使如此
def f(var):
if var.values != None:
print "do stuff"
我无法像预期那样工作。
isinstance,没有别的。
PEP8明确表示isinstance
是检查类型的首选方法
Yes: if isinstance(obj, int):
No: if type(obj) is type(1):
甚至不要考虑
if obj.__class__.__name__ = "MyInheritedClass":
expect_problems_some_day()
isinstance
处理继承(请参阅python中的isinstance()和type()之间的区别)。 例如,它会告诉你,如果一个变量是一个字符串( str
或unicode
),因为它们来自basestring
)
if isinstance(obj, basestring):
i_am_string(obj)
使用内置的isinstance()函数。
import pandas as pd
def f(var):
if isinstance(var, pd.DataFrame):
print "do stuff"
链接地址: http://www.djcxy.com/p/54231.html