[FIXED] Erstellen einer Funktion, die Zeilenwerte in einer bestimmten Spalte ändert

Ausgabe

Ich habe also mehrere verschiedene Datenrahmen, alle mit unterschiedlichen Teamnamen unter demselben Spaltennamen „Team“. Ich habe eine Funktion erstellt, um diese alle auf einmal zu durchlaufen, aber aus irgendeinem Grund wird sie nicht ausgeführt.

def rename(df):
    df = df.replace({'Team':
                  {'NewEngland' : 'Patriots',
                   'GreenBay' : 'Packers',
                   'Pittsburgh' : 'Steelers',
                   'KansasCity' : 'Chiefs',
                   'Denver' : 'Broncos',
                   'Seattle' : 'Seahawks',
                   'Indianapolis' : 'Colts',
                   'New Orleans' : 'Saints',
                   'NewOrleans' : 'Saints',
                   'Dallas' : 'Cowboys',
                   'Baltimore' : 'Ravens',
                   'Philadelphia' : 'Eagles',
                   'Cincinnati' : 'Bengals',
                   'Carolina' : 'Panthers',
                   'Tennessee' : 'Titans',
                   'Arizona' : 'Cardinals',
                   'Buffalo' : 'Bills',
                   'SanFrancisco' : '49ers',
                   'Minnesota' : 'Vikings',
                   'Washington' : 'Redskins',
                   'Chicago' : 'Bears',
                   'Atlanta' : 'Falcons',
                   'NYGiants' : 'Giants',
                   'NYJets' : 'Jets',
                   'Cleveland' : 'Browns',
                   'Detroit' : 'Lions',
                   'Miami' : 'Dolphins',
                   'TampaBay' : 'Buccaneers',
                   'Jacksonville' : 'Jaguars',
                   'Houston' : 'Texans',
                   'HoustonTexans' : 'Texans',
                   'Oakland' : 'Raiders',
                   'SanDiego' : 'Chargers',
                   'St.Louis' : 'Rams',
                   'LARams' : 'Rams',
                   'LAChargers' : 'Chargers',
                   'LasVegas' : 'Raiders',
                   'LosAngeles' : 'Rams', 
                   'NewYork' : 'Giants',
                   'KCChiefs' : 'Chiefs',
                   'Kansas' : 'Chiefs',
                   'Tampa' : 'Buccaneers' 
                        }})

Wenn ich diesen Code ausführe, wie im Bild zu sehen, funktioniert der Code nicht – Bild

Wie Sie sehen, habe ich die Funktion auf einer Reihe verschiedener Datenrahmen ausgeführt, aber wenn ich einen davon teste, gibt es keine Änderungen an der Spalte „Team“.

Ich weiß, dass mein Code korrekt ist, denn wenn ich den Code außerhalb der Funktion ausführe, wie unten:

nfl_07 = nfl_07.replace({'Team':
                  {'NewEngland' : 'Patriots',
                   'GreenBay' : 'Packers',
                   'Pittsburgh' : 'Steelers'
                                              etc.

Dieser Code funktioniert aus irgendeinem Grund; Mein Datenrahmen nfl_07 hat die richtigen Teamnamen … Stimmt etwas mit meiner Funktion nicht?

Lösung

replacehandelt nicht standardmäßig.

In Ihrer Funktion können Sie den umbenannten DataFrame nicht zurückgeben, wenn Sie die Funktion aufrufen, können Sie die Ausgabe nicht zuweisen. Es passiert also nichts.

Die Zuweisung an dfinnerhalb der Funktion ist lokal. Es wirkt sich nicht auf den äußeren Bereich aus.

Entweder an Ort und Stelle ändern:

def rename(df):
    df.replace({'Team':
               {'NewEngland' : 'Patriots',
                'GreenBay' : 'Packers',
                # ...
                }}, inplace=True)

rename(nfl_07)

Oder den Ausgang zurückgeben und neu zuweisen:

def rename(df):
    return df.replace({'Team':
                      {'NewEngland' : 'Patriots',
                       'GreenBay' : 'Packers',
                       # ...
                       }})

nfl_07 = rename(nfl_07)
                   


Beantwortet von –
mozway


Antwort geprüft von –
Cary Denson (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like