Panda: come inserire una riga in una posizione di indice specifica


È possibile utilizzare la seguente sintassi di base per inserire una riga in una posizione di indice specifica in un DataFrame panda:

 #insert row in between index position 2 and 3
df. loc [ 2.5 ] = value1, value2, value3, value4

#sort index
df = df. sort_index (). reset_index (drop= True )

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: inserire una riga in una posizione di indice specifica in Pandas

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12

Possiamo usare la seguente sintassi per inserire una linea tra le posizioni dell’indice 2 e 3:

 #insert row in between index position 2 and 3
df. loc [ 2.5 ] = 'Z', 10, 5, 7

#sort index
df = df. sort_index (). reset_index (drop= True )

#view updated DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 Z 10 5 7
4 D 14 9 6
5 E 14 12 6
6 F 11 9 5
7 G 20 9 9
8:28 a.m. 4:12

Si noti che è stata inserita una riga tra le precedenti posizioni dell’indice 2 e 3 con le seguenti informazioni:

  • squadra: Z
  • punti: 10
  • assist: 5
  • rimbalzi: 7

Utilizzando le funzioni sort_index() e reset_index() , siamo poi riusciti a riassegnare all’indice valori compresi tra 0 e 8.

Tieni presente che la nuova riga deve contenere lo stesso numero di valori del numero di colonne esistenti.

Se ad esempio provassimo ad inserire una nuova riga con soli tre valori, riceveremmo un errore:

 #attempt to insert row with only three values
df. loc [ 2.5 ] = 10, 5, 7

ValueError : cannot set a row with mismatched columns

Riceviamo un ValueError perché il numero di valori nella nuova riga non corrisponde al numero di colonne esistenti nel DataFrame.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come inserire una colonna in un DataFrame Pandas
Come aggiungere righe a un DataFrame Pandas
Come eliminare le righe in Pandas DataFrame in base alle condizioni

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *