Panda Python - Lavorare con i dati di testo
In questo capitolo, discuteremo le operazioni sulle stringhe con la nostra serie / indice di base. Nei capitoli successivi impareremo come applicare queste funzioni stringa al DataFrame.
Pandas fornisce una serie di funzioni stringa che facilitano il funzionamento sui dati stringa. Ancora più importante, queste funzioni ignorano (o escludono) i valori / NaN mancanti.
Quasi tutti questi metodi funzionano con le funzioni di stringa Python (fare riferimento a: https://docs.python.org/3/library/stdtypes.html#string-methods). Quindi, converti l'oggetto serie in oggetto stringa e quindi esegui l'operazione.
Vediamo ora come si comporta ciascuna operazione.
Suor n | Descrizione della funzione |
---|---|
1 | lower() Converte le stringhe nella serie / indice in minuscolo. |
2 | upper() Converte le stringhe nella serie / indice in lettere maiuscole. |
3 | len() Calcola la lunghezza della stringa (). |
4 | strip() Aiuta a rimuovere gli spazi (compreso il ritorno a capo) da ogni stringa nella serie / indice da entrambi i lati. |
5 | split(' ') Divide ogni stringa con il modello dato. |
6 | cat(sep=' ') Concatena gli elementi serie / indice con un dato separatore. |
7 | get_dummies() Restituisce DataFrame con valori One-Hot Encoded. |
8 | contains(pattern) Restituisce un valore booleano True per ogni elemento se la sottostringa contiene nell'elemento, altrimenti False. |
9 | replace(a,b) Sostituisce il valore a con il valore b. |
10 | repeat(value) Ripete ogni elemento con il numero di volte specificato. |
11 | count(pattern) Restituisce il conteggio dell'aspetto del motivo in ogni elemento. |
12 | startswith(pattern) Restituisce vero se l'elemento nella serie / indice inizia con il modello. |
13 | endswith(pattern) Restituisce vero se l'elemento nella serie / indice termina con il modello. |
14 | find(pattern) Restituisce la prima posizione della prima occorrenza del modello. |
15 | findall(pattern) Restituisce un elenco di tutte le occorrenze del pattern. |
16 | swapcase Scambia le maiuscole / minuscole. |
17 | islower() Controlla se tutti i caratteri in ciascuna stringa nella serie / indice in minuscolo o meno. Restituisce booleano |
18 | isupper() Controlla se tutti i caratteri in ciascuna stringa nella serie / indice in maiuscolo o meno. Restituisce booleano. |
19 | isnumeric() Controlla se tutti i caratteri in ciascuna stringa nella serie / indice sono numerici. Restituisce booleano. |
Creiamo ora una serie e vediamo come funzionano tutte le funzioni di cui sopra.
import pandas as pd
import numpy as np
s = pd.Series(['Tom', 'William Rick', 'John', '[email protected]', np.nan, '1234','SteveSmith'])
print s
Suo output è il seguente -
0 Tom
1 William Rick
2 John
3 [email protected]
4 NaN
5 1234
6 Steve Smith
dtype: object
inferiore()
import pandas as pd
import numpy as np
s = pd.Series(['Tom', 'William Rick', 'John', '[email protected]', np.nan, '1234','SteveSmith'])
print s.str.lower()
Suo output è il seguente -
0 tom
1 william rick
2 john
3 [email protected]
4 NaN
5 1234
6 steve smith
dtype: object
superiore()
import pandas as pd
import numpy as np
s = pd.Series(['Tom', 'William Rick', 'John', '[email protected]', np.nan, '1234','SteveSmith'])
print s.str.upper()
Suo output è il seguente -
0 TOM
1 WILLIAM RICK
2 JOHN
3 [email protected]
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', '[email protected]', np.nan, '1234','SteveSmith'])
print s.str.len()
Suo output è il seguente -
0 3.0
1 12.0
2 4.0
3 7.0
4 NaN
5 4.0
6 10.0
dtype: float64
striscia()
import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print s
print ("After Stripping:")
print s.str.strip()
Suo output è il seguente -
0 Tom
1 William Rick
2 John
3 [email protected]
dtype: object
After Stripping:
0 Tom
1 William Rick
2 John
3 [email protected]
dtype: object
split (pattern)
import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print s
print ("Split Pattern:")
print s.str.split(' ')
Suo output è il seguente -
0 Tom
1 William Rick
2 John
3 [email protected]
dtype: object
Split Pattern:
0 [Tom, , , , , , , , , , ]
1 [, , , , , William, Rick]
2 [John]
3 [[email protected]]
dtype: object
gatto (sep = pattern)
import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print s.str.cat(sep='_')
Suo output è il seguente -
Tom _ William [email protected]
get_dummies ()
import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print s.str.get_dummies()
Suo output è il seguente -
William Rick [email protected] John Tom
0 0 0 0 1
1 1 0 0 0
2 0 0 1 0
3 0 1 0 0
contiene ()
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print s.str.contains(' ')
Suo output è il seguente -
0 True
1 True
2 False
3 False
dtype: bool
sostituire (a, b)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print s
print ("After replacing @ with $:")
print s.str.replace('@','$')
Suo output è il seguente -
0 Tom
1 William Rick
2 John
3 [email protected]
dtype: object
After replacing @ with $:
0 Tom
1 William Rick
2 John
3 Alber$t
dtype: object
ripetere (valore)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print s.str.repeat(2)
Suo output è il seguente -
0 Tom Tom
1 William Rick William Rick
2 JohnJohn
3 [email protected]@t
dtype: object
count (pattern)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print ("The number of 'm's in each string:")
print s.str.count('m')
Suo output è il seguente -
The number of 'm's in each string:
0 1
1 1
2 0
3 0
inizia con (modello)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print ("Strings that start with 'T':")
print s.str. startswith ('T')
Suo output è il seguente -
0 True
1 False
2 False
3 False
dtype: bool
finisce con (motivo)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print ("Strings that end with 't':")
print s.str.endswith('t')
Suo output è il seguente -
Strings that end with 't':
0 False
1 False
2 False
3 True
dtype: bool
trova (modello)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print s.str.find('e')
Suo output è il seguente -
0 -1
1 -1
2 -1
3 3
dtype: int64
"-1" indica che non è disponibile alcun modello di questo tipo nell'elemento.
findall (pattern)
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', '[email protected]'])
print s.str.findall('e')
Suo output è il seguente -
0 []
1 []
2 []
3 [e]
dtype: object
L'elenco Null ([]) indica che non è disponibile alcun modello di questo tipo nell'elemento.
swapcase ()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', '[email protected]'])
print s.str.swapcase()
Suo output è il seguente -
0 tOM
1 wILLIAM rICK
2 jOHN
3 [email protected]
dtype: object
è più basso()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', '[email protected]'])
print s.str.islower()
Suo output è il seguente -
0 False
1 False
2 False
3 False
dtype: bool
isupper ()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', '[email protected]'])
print s.str.isupper()
Suo output è il seguente -
0 False
1 False
2 False
3 False
dtype: bool
isnumeric ()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', '[email protected]'])
print s.str.isnumeric()
Suo output è il seguente -
0 False
1 False
2 False
3 False
dtype: bool