Answers:
使用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)
使用内置isinstance()
功能。
import pandas as pd
def f(var):
if isinstance(var, pd.DataFrame):
print("do stuff")
import pandas as pd
而只是使用的功能import pandas
呢?只是or
在两种可能性上都执行一个,还是有我不知道的更复杂的东西?
import pandas.DataFrame as panda_type
,然后在内部使用isinstance(var, panda_type)
var
等于空数据框”。您真正想要的是“如果类型var
等于类型pd.DataFrame
”。您可以使用isinstance