English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
Metodo | Descrizione |
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. |
swapcase | Inversione 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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