Panda: come ottenere una sottostringa di un'intera colonna


È possibile utilizzare la seguente sintassi di base per ottenere la sottostringa di un’intera colonna in un DataFrame panda:

 df[' some_substring '] = df[' string_column ']. str [1:4]

Questo particolare esempio crea una nuova colonna chiamata some_substring che contiene i caratteri dalle posizioni da 1 a 4 in string_column .

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

Esempio: ottieni la sottostringa dell’intera colonna in Pandas

Supponiamo di avere il seguente DataFrame panda che contiene informazioni su varie squadre di basket:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavericks', 'Warriors', 'Rockets', 'Hornets', 'Lakers'],
                   ' points ': [120, 132, 108, 118, 106]})

#view DataFrame
print (df)

        team points
0 Mavericks 120
1 Warriors 132
2 Rockets 108
3 Hornets 118
4 Lakers 106

Possiamo utilizzare la seguente sintassi per creare una nuova colonna contenente i caratteri della colonna della squadra tra le posizioni 1 e 4:

 #create column that extracts characters in positions 1 through 4 in team column
df[' team_substring '] = df[' team ']. str [1:4]

#view updated DataFrame
print (df)

        team points team_substring
0 Mavericks 120 ave
1 Warriors 132 arr
2 Rockets 108 ock
3 Hornets 118 orn
4 Lakers 106 ake

La nuova colonna chiamata team_substring contiene i caratteri della colonna team tra le posizioni 1 e 4.

Tieni presente che se tenti di utilizzare questa sintassi per estrarre una sottostringa da una colonna numerica, riceverai un errore:

 #attempt to extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. str [:2]

AttributeError: Can only use .str accessor with string values!

Invece, devi prima convertire la colonna numerica in una stringa usando astype(str) :

 #extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. astype (str). str [:2]

#view updated DataFrame
print (df)

        team points points_substring
0 Mavericks 120 12
1 Warriors 132 13
2 Rockets 108 10
3 Hornets 118 11
4 Lakers 106 10

Questa volta siamo in grado di estrarre con successo i caratteri dalle posizioni da 0 a 2 dalla colonna punto perché li abbiamo prima convertiti in una stringa.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:

Panda: controlla se la stringa contiene più sottostringhe
Panda: come aggiungere una stringa a ciascun valore in una colonna
Panda: come selezionare colonne contenenti una stringa specifica

Aggiungi un commento

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