2017-11-01 2 views
0

Ich bin sehr neu in Python. Ich habe eine Tabelle, in der ich eine neue Spalte erstellt „diff_gold“ genannt, die wie folgt definiert ist:Neue Spalte als Funktion Ergebnis in Pandas Datenrahmen von Python

df['diff_gold'] = (df['Gold'] - df['Gold.1']) 

wo ‚Gold‘ und ‚Gold.1‘ werden vorhandene Spalten in meiner Tabelle.

Das Ergebnis der Funktion sollte

df['diff_gold'].argmax() 

jedoch sein, ist dies nicht als Funktion funktioniert:

def answer_two(): 

    df['diff_gold'] = df['Gold'] - df['Gold.1'] 

    return df['diff_gold'].argmax() 
    answer_two() 

Könnten Sie mir bitte helfen? Wie soll ich meinen Code ändern, so dass answer_two() den entsprechenden Stringwert zurückgibt?

Vielen Dank im Voraus!

+0

sollte 'werden in Pandas idxmax' – Wen

+0

Dank für Ihre Antwort danken. Leider funktioniert es immer noch nicht, wenn man idmax anstelle von argmax benutzt. :-( – eszter

+0

Inwiefern funktioniert das nicht als Funktion? Beachten Sie auch zwei Dinge: 1. Sie haben kein Argument in Ihrer Funktion. Vielleicht möchten Sie, dass die erste Zeile def default_two (df) ist eingerückt die letzte Zeile, also ist antwort_two() in Ihrer Funktion (aber wird nie ausgeführt, wie es nach einem Rückkehrbefehl ist). –

Antwort

0

Ich habe gerade die Antwort auf meine Frage gefunden. Ich brauchte nur die intendation der letzten Zeile zu ändern, wie Fabian empfohlen:

def answer_two(): 

    df['diff_gold'] = (df['Gold'] - df['Gold.1']) 

    return df['diff_gold'].argmax() 
answer_two() 
Verwandte Themen