检查变量是否是数据帧

当我的函数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()之间的区别)。 例如,它会告诉你,如果一个变量是一个字符串( strunicode ),因为它们来自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

上一篇: check if variable is dataframe

下一篇: How to compare type of an object in Python?