
DataFrame.info() 是一个用于打印数据框结构摘要的工具方法,它不返回任何值(即返回 None),因此直接赋值会导致变量为 None;正确用法是单独调用该方法,而非赋值。
`dataframe.info()` 是一个用于打印数据框结构摘要的工具方法,它不返回任何值(即返回 `none`),因此直接赋值会导致变量为 `none`;正确用法是单独调用该方法,而非赋值。
DataFrame.info() 是 Pandas 中专为交互式探索设计的诊断方法,其核心职责是向标准输出(如 Spyder 的控制台或 Jupyter 的输出区域)打印数据框的元信息,包括行数、列名、非空计数、数据类型及内存占用等。它不设计为返回可赋值的对象——这是其 API 的明确约定,与 df.describe() 或 df.head() 等返回新 DataFrame 或 Series 的方法有本质区别。
例如,以下代码:
import pandas as pd import numpy.random as npr npr.seed(0) df = pd.DataFrame(npr.randint(1, 10, size=(3, 4))) # ❌ 错误:试图捕获 info() 的返回值(实际为 None) dfi = df.info() print(type(dfi)) # 输出: <class> print(dfi) # 输出: None # ✅ 正确:直接调用,让信息输出到控制台 df.info()</class>
运行后,控制台将清晰显示类似如下结构化摘要:
<class> RangeIndex: 3 entries, 0 to 2 Data columns (total 4 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 0 3 non-null int64 1 1 3 non-null int64 2 2 3 non-null int64 3 3 3 non-null int64 dtypes: int64(4) memory usage: 180.0 bytes</class>
⚠️ 注意事项:
- 不要对 info() 进行赋值操作,否则会丢失输出且引入 None 值,可能引发后续逻辑错误(如 AttributeError);
- 若需程序化获取结构信息(如列名、dtype、内存用量),应改用属性访问:df.columns, df.dtypes, df.memory_usage(deep=True).sum();
- 在 Spyder 中,确保“Console”视图处于激活状态,且未启用“Suppress output”等调试选项,以避免信息被意外拦截;
- 该行为与 Pandas 版本无关(自 0.15+ 以来保持一致),并非环境损坏所致,重装 Spyder 或 Pandas 无法改变此设计。
总结:df.info() 是一个“副作用驱动”的诊断函数,价值在于即时可视化,而非数据流转。理解其 None 返回特性,是避免低级但易发错误的关键一步。











