当我的函数f用变量调用时我想检查var是否是pandas数据帧:
def f(var):
if var == pd.DataFrame():
print "do stuff"
Run Code Online (Sandbox Code Playgroud)
我想解决方案可能很简单,但即便如此
def f(var):
if var.values != None:
print "do stuff"
Run Code Online (Sandbox Code Playgroud)
我无法让它按预期工作.
Jak*_* M. 137
使用isinstance,别的:
if isinstance(x, pd.DataFrame):
... # do something
Run Code Online (Sandbox Code Playgroud)
PEP8明确表示这isinstance是检查类型的首选方法
No: type(x) is pd.DataFrame
No: type(x) == pd.DataFrame
Yes: isinstance(x, pd.DataFrame)
Run Code Online (Sandbox Code Playgroud)
甚至不要考虑
if obj.__class__.__name__ = 'DataFrame':
expect_problems_some_day()
Run Code Online (Sandbox Code Playgroud)
isinstance处理继承(请参阅type()和isinstance()之间的区别是什么?).例如,它会告诉你,如果一个变量是一个字符串(str或unicode),因为他们从派生basestring)
if isinstance(obj, basestring):
i_am_string(obj)
Run Code Online (Sandbox Code Playgroud)
专门针对pandas DataFrame对象:
import pandas as pd
isinstance(var, pd.DataFrame)
Run Code Online (Sandbox Code Playgroud)
Rut*_*ies 127
使用内置isinstance()功能.
import pandas as pd
def f(var):
if isinstance(var, pd.DataFrame):
print("do stuff")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86799 次 |
| 最近记录: |