检查变量是否为dataframe

使用变量调用函数f时,我想检查var是否为数据帧:

定义f(变量):
如果var==pd.DataFrame():
打印“做事”

我想解决办法可能很简单,但即使有

定义f(变量):
如果变量值!=无:
打印“做事”

我不能让它像预期的那样工作

使用isinstance,无需其他操作:

如果存在(x,pd.数据帧):
... # 做点什么

PEP8明确指出,isinstance是检查类型的首选方法

否:类型(x)为pd.DataFrame
否:类型(x)==pd.DataFrame
是:isinstance(x,pd.数据帧)

甚至不要去想

如果对象为类名称,则为“数据帧”:
有一天会有问题

isinstance处理继承(请参见type()和isinstance()之间的区别)。例如,它将告诉您一个变量是否是字符串(或者是str或者unicode),因为它们源自basestring

如果isinstance(对象,基串):
i_am_字符串(obj)

专门针对pandasDataFrame对象:

将熊猫作为pd导入
isinstance(变量,pd.数据帧)

发表评论