Ich habe einen Datensatz wie folgt, der die Attribute des Spielers für jedes Spiel enthält. Der Datensatz ist im Pandas Dataframe-Format und nach Datum für jede characterId in absteigender Reihenfolge sortiert.Wie legen Sie die Werte einer neuen Spalte im Datenframe basierend auf der anderen Spalte und einem Schlüssel fest?
characterId date kills deaths matchResult
200 3-5-2014-22:30:10 10 12 0
300 4-4-2014-23:30:10 10 13 1
400 1-2-2014-17:30:10 9 10 1
201 3-5-2014-22:20:05 11 16 0
301 1-4-2014-20:20:05 18 15 1
Ich möchte eine neue Spalte (nextResult
) hinzuzufügen, der den Wert von matchResult
des letzten Spiels enthält. Der neue Datenrahmen soll wie folgt aussehen:
characterId date kills deaths matchResult nextResult
200 3-5-2014-22:30:10 10 12 0 nan
300 4-4-2014-23:30:10 10 13 1 0
400 1-2-2014-17:30:10 9 10 1 1
201 3-5-2014-22:20:05 11 16 0 nan
301 1-4-2014-20:20:05 18 15 1 0
Vielen Dank für Ihre Lösung. Ich habe es versucht, aber es zeigt den folgenden Fehler: 'features.shift (1) ['matchResult']. Wo (features.characterId.diff(). Fillna (0) .ge (0)) Datei" C: \ ProgramData \ Anaconda2 \ lib \ site-packages \ pandas \ core \ series.py ", Zeile 1459, in diff Ergebnis = algos.diff (_values_from_object (self), Punkte) Datei" C: \ ProgramData \ Anaconda2 \ lib \ site-packages \ pandas \ core \ algorithm.py ", Zeile 1251, in diff out_arr [res_indexer] = arr [res_indexer] - arr [lag_indexer] TypeError: nicht unterstützte Operandentyp (en) für -: 'str 'und' str'' – YNr
Sind Sie CharacterId immer ganze Zahlen oder könnten da einige Buchstaben drin sein? –
Die 'characterId' ist eine Zeichenkette. – YNr