L’aggiunta di una colonna è il risultato della differenza nelle righe consecutive nei panda

Diciamo che ho un dataframe come questo

AB 0 ab 1 cd 2 ef 3 gh 

0,1,2,3 sono volte, a, c, e, g è una serie temporale e b, d, f, h è un’altra serie temporale. Devo essere in grado di aggiungere due colonne al dataframe originale che si ottiene calcolando le differenze di righe consecutive per determinate colonne.

Quindi ho bisogno di qualcosa di simile

  AB dA 0 ab (ac) 1 cd (ce) 2 ef (eg) 3 gh Nan 

Ho visto qualcosa chiamato diff sul dataframe / serie, ma questo lo fa in modo leggermente diverso dal primo elemento che diventerà Nan.

    Usa il turno .

     df['dA'] = df['A'] - df['A'].shift(-1) 

    Puoi usare diff e passare -1 come argomento periods :

     >>> df = pd.DataFrame({"A": [9, 4, 2, 1], "B": [12, 7, 5, 4]}) >>> df["dA"] = df["A"].diff(-1) >>> df AB dA 0 9 12 5 1 4 7 2 2 2 5 1 3 1 4 NaN [4 rows x 3 columns]