2016-12-06 2 views
-3

Das ist mein Problem: Cousera Kurs auf apllied Daten Wissenschaft in Python Ich tue Assigment 2.Pandas Nameerror: name ‚df‘ definiert ist, nicht

Frage 1 Welches Land die meisten Goldmedaillen im Sommer Spiele gewonnen ? Diese Funktion sollte einen einzelnen Zeichenfolgenwert zurückgeben.

Das ist mein Code:

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

Dies ist der Fehler, die ich erhalte:

NameError: name 'df' is not defined 
+2

Bitte stellen Sie sicher, dass Ihre * ganzen Beitrag * in Englisch, links Sie etwas Französisch drin. Sie haben anscheinend vergessen, einen Datenrahmen zu erstellen. ** Anderswo ** Im Tutorial erstellt etwas einen Datenrahmen und weist ihn 'df' zu. Bitte lesen Sie Ihre Aufgabe sorgfältig. –

+0

Ich denke, dass die Lehrer ihre Studenten über die Existenz von www.stackoverflow.com am ** Ende ** des gesamten Kurses informieren sollten, nicht am Anfang. :( –

+0

@VK: Ich denke nicht, dass das gefragt ist. Fragen zu stellen ist in Ordnung; was fehlt, ist zu wissen * wie man gute Fragen stellt * (was Stack Overflow versucht zu lehren), aber viele neue Fragesteller ignorieren die [fragen] Informationen) –

Antwort

0

Erstens vielleicht Ihre df Objekt nicht globale Variable ist. Wenn ja, können Sie df als Argument an die Funktion übergeben. Für die Syntax sollte Ihr Zugriff auf den Index .index[0] statt .index(0) sein.

Eine kompaktere Lösung ist return str(df['Gold'].idxmax()).

+2

besser ist 'Return df ['Gold']. idxmax()' – jezrael

+0

Danke Die zwei Antwort ist gut. –

+0

@jezrael Danke für den Vorschlag, aber ich denke, die Frage fragt nach String zurück, so dass ich ein In String umwandeln. –

0

Bitte versuchen .Hope zu verwenden, so wird es funktionieren

return df['Gold'].idxmax()

Verwandte Themen