当我的函数f被一个变量调用时,我想检查var是否是熊猫数据框架:
def f(var):
if var == pd.DataFrame():
print "do stuff"
我想解决办法可能很简单,但即使是
def f(var):
if var.values != None:
print "do stuff"
我不能让它像预期的那样工作。
当我的函数f被一个变量调用时,我想检查var是否是熊猫数据框架:
def f(var):
if var == pd.DataFrame():
print "do stuff"
我想解决办法可能很简单,但即使是
def f(var):
if var.values != None:
print "do stuff"
我不能让它像预期的那样工作。
当前回答
使用内置的isinstance()函数。
import pandas as pd
def f(var):
if isinstance(var, pd.DataFrame):
print("do stuff")
其他回答
使用isinstance,不要使用其他:
if isinstance(x, pd.DataFrame):
... # do something
PEP8明确指出isinstance是检查类型的首选方法
No: type(x) is pd.DataFrame
No: type(x) == pd.DataFrame
Yes: isinstance(x, pd.DataFrame)
想都别想
if obj.__class__.__name__ = 'DataFrame':
expect_problems_some_day()
isinstance处理继承(参见type()和isinstance()之间的区别是什么?)例如,它会告诉你一个变量是否是字符串(str或unicode),因为它们派生自basestring)。
if isinstance(obj, basestring):
i_am_string(obj)
特别是熊猫DataFrame对象:
import pandas as pd
isinstance(var, pd.DataFrame)
或者您可以使用最简单的解决方案:类型(x)。
如果它是数据帧,它将输出pandas.core.frame.DataFrame。
使用内置的isinstance()函数。
import pandas as pd
def f(var):
if isinstance(var, pd.DataFrame):
print("do stuff")