执行df.columns无控制台输出、Seaburn数据集结果不符预期咨询
问题背景
我正在学习数据科学相关教程,当前练习列表推导式与字典推导式的用法,实操时遇到两个和教程效果不一致的问题:
- 执行
df.columns无直接回显:教学视频里的讲师执行df.columns语句后,控制台直接展示了运行结果,但我按照完全相同的步骤操作,控制台没有直接返回对应输出,复现失败。 - Seaborn数据集输出不符合预期:使用Seaborn内置数据集练习时,得到的输出结果和教程展示的预期结果存在差异。
效果对比截图如下:
- 教学视频中的运行效果:

- 本地操作的运行截图:

问题原因与对应解决方法
df.columns无直接输出问题
这个问题是运行环境差异导致的:
教程里讲师使用的是IPython/Jupyter类交互环境,这类环境默认会自动打印当前代码块最后一行语句的返回值;如果本地是在普通.py脚本、原生Python shell中运行代码,不会自动触发返回值打印,就会出现没有输出的情况。
对应解决方法:
- 如果是在普通脚本/非交互环境运行,主动给语句加打印调用即可:
print(df.columns),执行后就会在控制台输出列名结果 - 如果是在Jupyter Notebook/Lab环境运行,把
df.columns放在当前运行代码单元的最后一行即可自动输出;如果语句写在代码单元中间,同样需要用print()包裹才会输出对应结果
Seaborn数据集输出和预期不符问题
常见原因和对应解决方法如下:
- 版本不匹配:不同版本的Seaborn内置数据集可能存在字段调整、样本数据更新的情况,和教程使用的版本不一致就会出现输出差异。可以先执行
pip show seaborn查看本地安装的Seaborn版本,安装和教程一致的版本即可对齐效果 - 加载参数不一致:检查加载数据集时传入的参数是否和教程一致,比如缓存路径、是否强制拉取最新数据等参数不同,可能导致加载到的数据集内容有差异
- 前置处理步骤不一致:检查加载数据集之后、输出结果之前,是否做了和教程不一致的列筛选、缺失值处理、数据类型转换等操作,这类操作会直接修改数据集内容,导致最终输出和预期不符
内容的提问来源于stack exchange,提问作者irem emin
相关产品推荐
相关产品推荐

