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

Tratamento de Texto do Pandas

Exemplos de operações de texto do Pandas

Neste capítulo, usaremos séries básicas / O Index discute operações de string. Nos capítulos subsequentes, aprenderemos como aplicar essas funções de string no DataFrame.

O Pandas oferece um conjunto de funções de string que permitem operações fáceis em dados de string. O mais importante é que essas funções ignoram (ou excluem) valores ausentes/ Valores NaN.

Praticamente todos esses métodos podem ser usados nas funções de string do Python (veja: https://docs.python.org/3/library/stdtypes.html#string-docs.python.orgbiblioteca

stdtypes.html#string

methods) Portanto, converter o objeto Series para String e depois executar a operação.
lower()Método/Vamos ver como cada operação é executada.
upper()Método/Descrição
len()Converter a string na "índice" para minúsculas.
strip()Converter a string na "índice" para maiúsculas./Calcular a comprimento da string.
Remover espaços em branco (inclusive quebras de linha) de cada string na "índice".split(' ')
Dividir cada string com o padrão fornecido./cat(sep=' ')td>/Conectar a série com o delimitador fornecido
get_dummies()Elementos de índice.
Retornar um DataFrame com valor de código único.contains(pattern)
replace(a,b)Se a substring estiver presente no elemento, retornar True para cada elemento, caso contrário retornar False.
repeat(value)Substituir o valor a por b.
count(pattern)Repetir cada elemento a uma quantidade específica de vezes.
startswith(pattern)Se o elemento na "índice" começa com o padrão, retornar true./Retornar a contagem de ocorrências do padrão em cada elemento.
endswith(pattern)Se o elemento na "índice" começa com o padrão, retornar true./Se o elemento na "índice" termina com o padrão, retornar true.
find(pattern)Retornar a primeira posição onde o padrão aparece.
findall(pattern)Retornar a lista de todos os padrões que aparecem.
swapcaseInversão de maiúsculas e minúsculas
islower()<Verificar "série/Verificar se todos os caracteres de cada string na "índice" estão em minúsculas. Retornar valor booleano
isupper()Verificar "série/Verificar se todos os caracteres de cada string na "índice" estão em maiúsculas. Retornar valor booleano.
isnumeric()Verificar "série/Verificar se todos os caracteres de cada string na "índice" são números. Retornar valor booleano.

Vamos criar um Series, para ver como todas essas funções funcionam.

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

Resultados da Execução:

 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'])
 print s.str.lower()

Resultados da Execução:

 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'])
 print s.str.upper()

Resultados da Execução:

 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()

Resultados da Execução:

 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
 print ("After Stripping:")
 print s.str.strip()

Resultados da Execução:

 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(' ')

Resultados da Execução:

 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'])
 print s.str.cat(sep='_')

Resultados da Execução:

   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()

Resultados da Execução:

   William Rick      Alber@t      John      Tom
0        0        0        0        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(' ')

Resultados da Execução:

 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 ("After replacing @ with $:")
 print s.str.replace('@',')
 )

Resultados da Execução:

 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

repeat(value)

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

Resultados da Execução:

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 ("Number of 'm' in each string:")
 print s.str.count('m')

Resultados da Execução:

 Number of 'm' in each string:
 0 1
 1 1
 2 0
 3 0

startswith(pattern)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print ("Strings that start with 'T':")
 print s.str.  startswith ('T')

Resultados da Execução:

 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 ("Strings that end with 't':")
 print s.str.endswith('t')

Resultados da Execução:

 Strings que terminam com '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')

Resultados da Execução:

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

“ -1”indica que nenhum elemento foi correspondido.

findall(pattern)

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

Resultados da Execução:

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

Uma lista vazia ([]) indica que nenhum elemento foi correspondido

swapcase()

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

Resultados da Execução:

 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()

Resultados da Execução:

 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()

Resultados da Execução:

 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()

Resultados da Execução:

 0  False
 1  False
 2  False
 3  False
 dtype: bool