ใช้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)
varเท่ากับ dataframe ว่าง" สิ่งที่คุณต้องการจริงๆคือ "ถ้าประเภทvarเท่ากับประเภทpd.DataFrame" คุณสามารถตรวจสอบได้โดยใช้isinstance