Gibt es eine Möglichkeit, auf eine vorherige Zeile zurückzublicken und eine neue Variable zu berechnen? So lange die vorherige Zeile den gleichen Fall hat, was ist die (vorherige Änderung) - (aktuelle Änderung), und wird sie dem vorherigen 'ChangeEvent' in neuen Spalten zugeordnet?Wert der vorherigen Zeile erhalten und neue Spalte berechnen pandas python
hier ist mein Datenrahmen
>>> df
ChangeEvent StartEvent case change open
0 Homeless Homeless 1 2014-03-08 00:00:00 2014-02-08
1 other Homeless 1 2014-04-08 00:00:00 2014-02-08
2 Homeless Homeless 1 2014-05-08 00:00:00 2014-02-08
3 Jail Homeless 1 2014-06-08 00:00:00 2014-02-08
4 Jail Jail 2 2014-06-08 00:00:00 2014-02-08
Spalten hinzufügen
Jail Homeless case
0 6 1
0 30 1
0 0 1
... und so weiter
hier ist die df build
import pandas as pd
import datetime as DT
d = {'case' : pd.Series([1,1,1,1,2]),
'open' : pd.Series([DT.datetime(2014, 3, 2), DT.datetime(2014, 3, 2),DT.datetime(2014, 3, 2),DT.datetime(2014, 3, 2),DT.datetime(2014, 3, 2)]),
'change' : pd.Series([DT.datetime(2014, 3, 8), DT.datetime(2014, 4, 8),DT.datetime(2014, 5, 8),DT.datetime(2014, 6, 8),DT.datetime(2014, 6, 8)]),
'StartEvent' : pd.Series(['Homeless','Homeless','Homeless','Homeless','Jail']),
'ChangeEvent' : pd.Series(['Homeless','irrelivant','Homeless','Jail','Jail']),
'close' : pd.Series([DT.datetime(2015, 3, 2), DT.datetime(2015, 3, 2),DT.datetime(2015, 3, 2),DT.datetime(2015, 3, 2),DT.datetime(2015, 3, 2)])}
df=pd.DataFrame(d)
Ihre letzte kann nur sein:. '' Df.groupby ('Fall') [ 'change'] diff() '' (obwohl ich nicht glaube '' diff'' ist cythonisiert, also sollte die Geschwindigkeit gleich sein – Jeff
Großartig, das ist genau das, was ich brauche. –