Pandas: como obter uma substring de uma coluna inteira


Você pode usar a seguinte sintaxe básica para obter a substring de uma coluna inteira em um DataFrame do pandas:

 df[' some_substring '] = df[' string_column ']. str [1:4]

Este exemplo específico cria uma nova coluna chamada some_substring que contém os caracteres das posições 1 a 4 em string_column .

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: Obtenha substring de coluna inteira no Pandas

Digamos que temos o seguinte DataFrame do pandas que contém informações sobre vários times de basquete:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavericks', 'Warriors', 'Rockets', 'Hornets', 'Lakers'],
                   ' points ': [120, 132, 108, 118, 106]})

#view DataFrame
print (df)

        team points
0 Mavericks 120
1 Warriors 132
2 Rockets 108
3 Hornets 118
4 Lakers 106

Podemos usar a seguinte sintaxe para criar uma nova coluna contendo os caracteres da coluna da equipe entre as posições 1 e 4:

 #create column that extracts characters in positions 1 through 4 in team column
df[' team_substring '] = df[' team ']. str [1:4]

#view updated DataFrame
print (df)

        team points team_substring
0 Mavericks 120 ave
1 Warriors 132 arr
2 Rockets 108 ock
3 Hornets 118 orn
4 Lakers 106 ake

A nova coluna chamada team_substring contém os caracteres da coluna team entre as posições 1 e 4.

Observe que se você tentar usar esta sintaxe para extrair uma substring de uma coluna numérica, receberá um erro:

 #attempt to extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. str [:2]

AttributeError: Can only use .str accessor with string values!

Em vez disso, você deve primeiro converter a coluna numérica em uma string usando astype(str) :

 #extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. astype (str). str [:2]

#view updated DataFrame
print (df)

        team points points_substring
0 Mavericks 120 12
1 Warriors 132 13
2 Rockets 108 10
3 Hornets 118 11
4 Lakers 106 10

Desta vez, conseguimos extrair com sucesso os caracteres das posições 0 a 2 da coluna de pontos porque primeiro os convertemos em uma string.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:

Pandas: verifique se a string contém várias substrings
Pandas: como adicionar uma string a cada valor em uma coluna
Pandas: como selecionar colunas contendo uma string específica

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *