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', 'Alber@t', np.nan, '1234','SteveSmith'])
print s
Suo output è il seguente -
0 Tom
1 William Rick
2 John
3 Alber@t
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', 'Alber@t', np.nan, '1234','SteveSmith'])
print s.str.lower()
Suo output è il seguente -
0 tom
1 william rick
2 john
3 alber@t
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', 'Alber@t', np.nan, '1234','SteveSmith'])
print s.str.upper()
Suo output è il seguente -
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'])
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', 'Alber@t'])
print s
print ("After Stripping:")
print s.str.strip()
Suo output è il seguente -
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
print ("Split Pattern:")
print s.str.split(' ')
Suo output è il seguente -
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
gatto (sep = pattern)
import pandas as pd
import numpy as np
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
print s.str.cat(sep='_')
Suo output è il seguente -
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()
Suo output è il seguente -
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
contiene ()
import pandas as pd
s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
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', 'Alber@t'])
print s
print ("After replacing @ with $:")
print s.str.replace('@','$')
Suo output è il seguente -
0 Tom
1 William Rick
2 John
3 Alber@t
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', 'Alber@t'])
print s.str.repeat(2)
Suo output è il seguente -
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 ("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', 'Alber@t'])
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', 'Alber@t'])
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', 'Alber@t'])
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', 'Alber@t'])
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', 'Alber@t'])
print s.str.swapcase()
Suo output è il seguente -
0 tOM
1 wILLIAM rICK
2 jOHN
3 aLBER@T
dtype: object
è più basso()
import pandas as pd
s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
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', 'Alber@t'])
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', 'Alber@t'])
print s.str.isnumeric()
Suo output è il seguente -
0 False
1 False
2 False
3 False
dtype: bool