【问题标题】:Pandas NameError: name 'df' is not definedPandas NameError:未定义名称“df”
【发布时间】:2017-04-20 21:03:25
【问题描述】:

这是我的问题:Cousera course on Apllied Data Science in Python 我正在做作业 2。

问题 1 哪个国家在夏季奥运会上获得的金牌最多? 此函数应返回单个字符串值。

这是我的代码:

def answer_one():
  return df[df['Gold'] == df['Gold'].max()].index(0)
answer_one()

这是我得到的错误:

NameError: name 'df' is not defined

【问题讨论】:

  • 请确保您的整个帖子是英文的,您在其中留下了一些法语。您似乎忘记了创建数据框。 其他地方在教程中创建了一个数据框并将其分配给df。请仔细阅读您的作业。
  • 我认为老师应该在整个课程的结束而不是一开始就告诉学生www.stackoverflow.com的存在。 :(
  • @V.K.:我认为不需要这样做。提问很好;缺少的是知道如何提出好的问题(Stack Overflow 确实试图教授这一点,但许多新问题提问者忽略了How to Ask 信息)。

标签: python pandas data-science


【解决方案1】:

首先,也许您的 df 对象不是全局变量。如果是这样,您可以将 df 作为参数传递给函数。

对于语法,您对索引的访问权限应为.index[0] 而不是.index(0)

更紧凑的解决方案是return str(df['Gold'].idxmax())

【讨论】:

  • 更好的是return df['Gold'].idxmax()
  • @jezrael 感谢您的建议。但我认为问题要求返回字符串,所以我对字符串进行了强制转换。
【解决方案2】:

请尝试使用 .Hope,这样它会起作用

return df['Gold'].idxmax()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-14
    • 2018-08-06
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2021-04-15
    • 2019-01-26
    相关资源
    最近更新 更多