当我的函数f用一个变量调用时,我想检查var是否是一个熊猫数据框:
def f(var):
if var == pd.DataFrame():
print "do stuff"
我想解决方案可能很简单,但即使
def f(var):
if var.values != None:
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)
专门针对pandas
DataFrame
对象:
import pandas as pd
isinstance(var, pd.DataFrame)
问题内容: 如何检查变量是否为整数? 问题答案: 如果你需要这样做,请执行 除非你使用的是Python 2.x,否则需要 不要使用type。在Python中,这几乎永远不是正确的答案,因为它阻止了多态性的所有灵活性。例如,如果你子类化int,则你的新类应注册为int,但type不会这样做: 这符合Python强大的多态性:你应该允许行为类似于的任何对象int,而不是强制将其作为一个对象。 BUT
问题内容: 有什么最短的方法吗? 如果我是正确的,应该用? 有可能,并且在一行中写(也许是数组?)而不重复? 问题答案: 如果要测试变量是否 确实 是,请使用标识运算符: 如果要检查是否未设置变量: 或者,如果变量不为空,则为空字符串,零,..: 如果要测试变量是否不是空字符串,也将足够:
我想检查变量是否为空: 此代码基于:https://www.thomasmaurer.ch/2010/07/powershell-check-variable-for-null/,但这不起作用。 我该怎么解决这个问题? ps。堆栈中有东西
问题内容: 假设我有任何变量,定义如下: 我想要一个检查变量类型是否像函数一样的函数。即: 如何检查变量是否为上述定义的类型? 问题答案: 当然,下划线的方式效率更高,但是当效率不是问题时,最好的检查方法是写在@Paul Rosania链接的下划线页面上。 受下划线启发,最终的isFunction函数如下:
问题内容: 我有以下代码 我将用它来查看数据库的不同“页面”(结果1-10、11-20等)。但是,我似乎无法使is_int()函数正常工作。在网址(noobs.php?p = 1)中输入“ 1”会给我无效的页面错误,以及类似“ asdf”的错误。 问题答案: 使用检查,如果一个变量是一个整数是一个坏主意。该函数将返回用于例如。这不是预期的行为。 要正确执行此操作,可以使用以下选项之一: 考虑此变量
问题 你希望检查一个变量是否为一个数组。 myArray = [] console.log typeof myArray // outputs 'object' “typeof” 运算符为数组输出了一个错误的结果。 解决方案 使用下面的代码: typeIsArray = Array.isArray || ( value ) -> return {}.toString.call( value ) i