Ho un dataframe di Pandas e voglio creare una nuova colonna i cui valori sono quelli di un'altra colonna, spostati in basso di una riga. L'ultima riga dovrebbe mostrare NaN.Panda: sposta i valori di una riga all'interno di un gruppo
Il problema è che voglio farlo per gruppo, con l'ultima riga di ogni gruppo che mostra NaN. NON avere l'ultima riga di un gruppo "rubare" un valore da un gruppo che si trova adiacente nel dataframe.
Il mio tentativo di implementazione è stato piuttosto vergognosamente infranto, quindi sto chiaramente fraintendendo qualcosa di fondamentale.
df['B_shifted'] = df.groupby(['A'])['B'].transform(lambda x:x.values[1:])
Funziona così: 'df ['B_shifted'] = df.groupby (['A']) ['B']. Transform (lambda x: x.shift())'? – EdChum
Ogni volta che c'è qualcosa di leggermente complicato che voglio fare in Panda, c'è già una funzione scritta che fa proprio questo. Tranne che non so mai che esiste o come trovarlo! – jeffalstott