English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Elaborazione del testo di Pandas

Esempi di operazioni di testo Pandas

In questa sezione, utilizzeremo Series / Index di base per discutere le operazioni di stringa. Nei capitoli successivi, impareremo come applicare queste funzioni di stringa al DataFrame.

Pandas fornisce un insieme di funzioni di stringa che consentono di manipolare facilmente i dati di stringa. Soprattutto, queste funzioni ignorano (o escludono) i valori mancanti / NaN.

Quasi tutti questi metodi sono utilizzabili per le funzioni di stringa Python (vedi:) https://docs.python.org/3/library/stdtypes.html#string-methods) Pertanto, converti l'oggetto Series in oggetto String, quindi esegui l'operazione.

Vediamo come ogni operazione viene eseguita.

MetodoDescrizione
lower()Converti le stringhe della serie/indice in minuscolo.
upper()Converti le stringhe della serie/indice in maiuscolo.
len()Calcola la lunghezza della stringa length().
strip()Aiuta a rimuovere gli spazi (inclusi i segni di newline) da ciascuna stringa della serie/indice dai lati.
split(' ')Dividi ogni stringa con il modello fornito.
cat(sep=' ')/td>Connettiti agli elementi della serie/indice con il separatore fornito.
get_dummies()Restituisce un DataFrame con valori di codifica univoca.
contains(pattern)Se la stringa secondaria è contenuta nell'elemento, restituisce un valore booleano True per ciascun elemento, altrimenti restituisce False.
replace(a,b)Sostituisci il valore a con b.
repeat(value)Ripeti ogni elemento un numero specificato di volte.
count(pattern)Restituisce il numero di occorrenze del modello in ogni elemento.
startswith(pattern)Restituisce true se l'elemento della serie/indice inizia con il modello.
endswith(pattern)Restituisce true se l'elemento della serie/indice termina con il modello.
find(pattern)Restituisce la prima posizione di apparizione del modello nella serie/indice.
findall(pattern)Restituisce l'elenco di tutte le occorrenze del modello.
swapcaseInversione di caso
islower()<Controlla se tutti i caratteri di ogni stringa nella serie/indice sono in minuscolo. Restituisce un valore booleano
isupper()Controlla se tutti i caratteri di ogni stringa nella serie/indice sono in maiuscolo. Restituisce un valore booleano.
isnumeric()Controlla se tutti i caratteri di ogni stringa nella serie/indice sono numeri. Restituisce un valore booleano.

Creiamo una Series per vedere come funzionano tutte queste funzioni.

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
 print s

Risultato dell'esecuzione:

 0     Tom
 1     William Rick
 2     John
 3     Alber@t
 4 NaN
 5 1234
 6 Steve Smith
 dtype: object

lower()

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
 stampa s.str.lower()

Risultato dell'esecuzione:

 0 tom
 1 william rick
 2 john
 3 alber@t
 4 NaN
 5 1234
 6 steve smith
 dtype: object

upper()

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
 stampa s.str.upper()

Risultato dell'esecuzione:

 0 TOM
 1 WILLIAM RICK
 2 JOHN
 3 ALBER@T
 4 NaN
 5 1234
 6 STEVE SMITH
 dtype: object

len()

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
 stampa s.str.len()

Risultato dell'esecuzione:

 0 3.0
 1 12.0
 2 4.0
 3 7.0
 4 NaN
 5 4.0
 6 10.0
 dtype: float64

strip()

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s
 stampa ("After Stripping:")
 stampa s.str.strip()

Risultato dell'esecuzione:

 0     Tom
 1     William Rick
 2     John
 3     Alber@t
 dtype: object
 After Stripping:
 0     Tom
 1     William Rick
 2     John
 3     Alber@t
 dtype: object

split(pattern)

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s
 stampa ("Split Pattern:")
 stampa s.str.split(' ')

Risultato dell'esecuzione:

 0     Tom
 1     William Rick
 2     John
 3     Alber@t
 dtype: object
 Split Pattern:
 0 [Tom, , , , , , , , , , ]
 1 [, , , , , William, Rick]
 2 [John]
 3 [Alber@t]
 dtype: object

cat(sep=pattern)

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 stampa s.str.cat(sep='_')

Risultato dell'esecuzione:

   Tom _ William Rick_John_Alber@t

get_dummies()

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s.str.get_dummies()

Risultato dell'esecuzione:

   William Rick     Alber@t     John     Tom
0     0     0     0     1
1     1     0     0     0
2     0     0     1     0
3     0     1     0     0

contains ()

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s.str.contains(' ')

Risultato dell'esecuzione:

 0     True
 1     True
 2 False
 3 False
 dtype: bool

replace(a,b)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s
 print ("Dopo la sostituzione di @ con $:")
 print s.str.replace('@',')
 )

Risultato dell'esecuzione:

 0     Tom
 1     William Rick
 2     John
 3     Alber@t
 dtype: object
 Dopo la sostituzione di @ con $:
 0     Tom
 1     William Rick
 2     John
 3     Alber$t
 dtype: object

repeat(value)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s.str.repeat(2)

Risultato dell'esecuzione:

0     Tom     Tom
1     William Rick     William Rick
2     JohnJohn
3     Alber@tAlber@t
dtype: object

count(pattern)

 import pandas as pd
  
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print ("Il numero di "m" in ogni stringa:")
 print s.str.count('m')

Risultato dell'esecuzione:

 Il numero di "m" in ogni stringa:
 0 1
 1 1
 2 0
 3 0

startswith(pattern)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print ("Stringhe che iniziano con 'T':")
 print s.str.startwith('T')

Risultato dell'esecuzione:

 0     True
 1 False
 2 False
 3 False
 dtype: bool

endswith(pattern)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print ("Stringhe che finiscono con 't':")
 print s.str.endswith('t')

Risultato dell'esecuzione:

 Stringhe che finiscono con 't':
 0 False
 1 False
 2 False
 3     True
 dtype: bool

find(pattern)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s.str.find('e')

Risultato dell'esecuzione:

 0 -1
 1 -1
 2 -1
 3 3
 dtype: int64

“-1” indica che nessun elemento corrisponde.

findall(pattern)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print(s.str.findall('e'))

Risultato dell'esecuzione:

 0 []
 1 []
 2 []
 3 [e]
 dtype: object

Una lista vuota ([]), indica che nessun elemento corrisponde

swapcase()

 import pandas as pd
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
 print(s.str.swapcase())

Risultato dell'esecuzione:

 0 tOM
 1 wILLIAM rICK
 2 jOHN
 3 aLBER@T
 dtype: object

islower()

 import pandas as pd
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
 print(s.str.islower())

Risultato dell'esecuzione:

 0 False
 1 False
 2 False
 3 False
 dtype: bool

isupper()

 import pandas as pd
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
 print(s.str.isupper())

Risultato dell'esecuzione:

 0 False
 1 False
 2 False
 3 False
 dtype: bool

isnumeric()

 import pandas as pd
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
 print(s.str.isnumeric())

Risultato dell'esecuzione:

 0 False
 1 False
 2 False
 3 False
 dtype: bool