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