Jupyter Notebook分组代码运行报错:NameError问题求助
问题排查与解决
错误根源分析
- 首次代码的直接错误:第二行代码中,你错误地将右侧的变量写成了
df_grouped_one(这个变量此时还未定义),正确的应该是使用已经定义好的df_group_one。 - 修改后仍报错的核心原因:大概率是Jupyter Notebook的单元格执行顺序错误——你可能先执行了分组赋值的代码,再执行
df_group_one = df[['drive-wheels','body-style','price']]这行定义代码,导致执行分组代码时df_group_one还未被创建。
解决方案
方案1:使用独立变量保存分组结果(推荐,避免覆盖原始数据)
将代码按顺序执行,要么放在同一个单元格,要么先执行定义子集的代码,再执行分组代码:
# 第一步:创建包含目标列的数据子集 df_group_one = df[['drive-wheels','body-style','price']] # 第二步:按drive-wheels分组并计算均值,用新变量保存结果 df_grouped_one = df_group_one.groupby(['drive-wheels'], as_index=False).mean() # 查看分组后的结果 df_grouped_one
方案2:覆盖原变量(需确保执行顺序正确)
如果一定要覆盖df_group_one,必须保证先执行子集定义代码,再执行分组代码:
# 先执行这行,创建初始子集 df_group_one = df[['drive-wheels','body-style','price']] # 再执行这行,对现有子集分组聚合 df_group_one = df_group_one.groupby(['drive-wheels'], as_index=False).mean() # 查看结果 df_group_one
额外说明
body-style是字符串类型的列,执行mean()时会被自动排除,所以最终结果只会包含drive-wheels和price的均值,这是Pandas的正常行为。- 在Jupyter中,务必注意单元格的执行顺序(右上角的数字标记是执行顺序),确保变量定义的代码先于使用该变量的代码执行。
内容的提问来源于stack exchange,提问作者Luqman Kunle
相关产品推荐
相关产品推荐

