如何判断对象是Pandas.DataFrame还是Pandas.Series?
判断Pandas对象是DataFrame还是Series的最佳方法
1. 最推荐:使用isinstance()(Python标准类型检查)
这是Python官方推荐的类型判断方式,也是最可靠的方案,能正确识别继承自DataFrame/Series的子类对象:
import pandas as pd # obj 为待判断的目标对象 if isinstance(obj, pd.DataFrame): print("该对象是 DataFrame 类型") elif isinstance(obj, pd.Series): print("该对象是 Series 类型") else: print("既不是 DataFrame 也不是 Series")
2. 其他可选方法
- 通过维度
ndim判断:DataFrame 是二维结构(ndim=2),Series 是一维结构(ndim=1)
if obj.ndim == 2: print("DataFrame") elif obj.ndim == 1: print("Series")
注意:这种方法有局限性,若遇到其他一维/二维的Pandas对象(如已弃用的Panel)或自定义结构,可能出现误判。
- 直接对比类型
type():
if type(obj) == pd.DataFrame: print("DataFrame") elif type(obj) == pd.Series: print("Series")
缺点:无法识别子类对象,比如自定义继承自DataFrame的类时,type()会返回自定义类而非pd.DataFrame,灵活性不如isinstance()。
总结
优先选择isinstance(),它兼顾了准确性与灵活性,是判断Pandas对象类型的最佳实践。
内容的提问来源于stack exchange,提问作者Leo Hanhart
相关产品推荐
相关产品推荐

