terça-feira, 20 de abril de 2021

Python - Utilizando o método Series.str.cat() do pandas para concatenar strings

O método Series.str.cat() é usado para concatenar strings para a série de strings passada pelo chamador. Valores distintos de uma série diferente podem ser transmitidos, mas o comprimento de ambas as séries deve ser o mesmo. .str deve ser prefixado para diferenciá-lo do método padrão do Python.

Sintaxe: Series.str.cat(others=None, sep=None, na_rep=None)

Parâmetros:

  • others: Série, índice, dataframe ou lista de strings para concatenar
  • sep: Separador a ser colocado entre as duas strings
  • bna_rep: None ou valor de string para substituir no lugar de valores nulos

Tipo de retorno: Série com valores de string concatenados

Para baixar o arquivo csv utilizado, clique aqui.

Nos exemplos a seguir, o DataFrame usado contém dados sobre alguns jogadores da NBA. A imagem do DataFrame antes de qualquer operação é anexada abaixo.

Exemplo #1: Coluna de concatenação com separador

Neste exemplo, a coluna Team é concatenada no final da coluna Name com o separador ",". A coluna Name é substituída pela nova série e o DataFrame é exibido.

# Importando o pacote pandas
import pandas as pd

# Criando um DataFrame a partir
# de um arquivo csv
data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")

# Fazendo uma copia da coluna Team
new = data["Team"].copy()

# concatenando a coluna Team com a coluna Name
# e sobrescrevendo a coluna Name
data["Name"] = data["Name"].str.cat(new, sep =", ")
  
print(data)

Conforme mostradon abaixo, cada string na coluna Team com o mesmo índice da string na coluna Name foi concatenada com o separador ",".

Saída:

                              Name            Team  Number Position   Age Height  Weight            College     Salary
0    Avery Bradley, Boston Celtics  Boston Celtics     0.0       PG  25.0    6-2   180.0              Texas  7730337.0
1      Jae Crowder, Boston Celtics  Boston Celtics    99.0       SF  25.0    6-6   235.0          Marquette  6796117.0
2     John Holland, Boston Celtics  Boston Celtics    30.0       SG  27.0    6-5   205.0  Boston University        NaN
3      R.J. Hunter, Boston Celtics  Boston Celtics    28.0       SG  22.0    6-5   185.0      Georgia State  1148640.0
4    Jonas Jerebko, Boston Celtics  Boston Celtics     8.0       PF  29.0   6-10   231.0                NaN  5000000.0
..                             ...             ...     ...      ...   ...    ...     ...                ...        ...
453        Shelvin Mack, Utah Jazz       Utah Jazz     8.0       PG  26.0    6-3   203.0             Butler  2433333.0
454           Raul Neto, Utah Jazz       Utah Jazz    25.0       PG  24.0    6-1   179.0                NaN   900000.0
455        Tibor Pleiss, Utah Jazz       Utah Jazz    21.0        C  26.0    7-3   256.0                NaN  2900000.0
456         Jeff Withey, Utah Jazz       Utah Jazz    24.0        C  26.0    7-0   231.0             Kansas   947276.0
457                            NaN             NaN     NaN      NaN   NaN    NaN     NaN                NaN        NaN

[458 rows x 9 columns]

Exemplo #2: Tratamento de valores nulos

A parte mais importante na análise de dados é lidar com valores nulos. str.cat() fornece uma maneira de lidar com valores nulos por meio do parâmetro na_rep. O que quer que seja passado para este parâmetro será substituído a cada ocorrência de valor nulo.

Neste exemplo, a coluna College é concatenada com a coluna Team. "No college" é passado para o parâmetro na_rep para substituir valores null por esta string.

# Importando o pacote pandas
import pandas as pd

# Criando um DataFrame a partir
# de um arquivo csv
data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")

# Fazendo uma copia da coluna Team
new = data["Team"].copy()
  
# string para substituir os valores nulos
na_string = "No College"

# concatenando a coluna Team com a coluna Name
# e sobrescrevendo a coluna College
data["College"] = data["College"].str.cat(new, sep=", ", na_rep=na_string)
  
print(data)

Como pode ser visto no DataFrame, nas posições de índice 4 e 5, havia um valor NULL que foi substituído por “No College” e a string da coluna Team foi concatenada com sucesso.

Saída:

              Name            Team  Number Position   Age Height  Weight                            College     Salary
0    Avery Bradley  Boston Celtics     0.0       PG  25.0    6-2   180.0              Texas, Boston Celtics  7730337.0
1      Jae Crowder  Boston Celtics    99.0       SF  25.0    6-6   235.0          Marquette, Boston Celtics  6796117.0
2     John Holland  Boston Celtics    30.0       SG  27.0    6-5   205.0  Boston University, Boston Celtics        NaN
3      R.J. Hunter  Boston Celtics    28.0       SG  22.0    6-5   185.0      Georgia State, Boston Celtics  1148640.0
4    Jonas Jerebko  Boston Celtics     8.0       PF  29.0   6-10   231.0         No College, Boston Celtics  5000000.0
..             ...             ...     ...      ...   ...    ...     ...                                ...        ...
453   Shelvin Mack       Utah Jazz     8.0       PG  26.0    6-3   203.0                  Butler, Utah Jazz  2433333.0
454      Raul Neto       Utah Jazz    25.0       PG  24.0    6-1   179.0              No College, Utah Jazz   900000.0
455   Tibor Pleiss       Utah Jazz    21.0        C  26.0    7-3   256.0              No College, Utah Jazz  2900000.0
456    Jeff Withey       Utah Jazz    24.0        C  26.0    7-0   231.0                  Kansas, Utah Jazz   947276.0
457            NaN             NaN     NaN      NaN   NaN    NaN     NaN             No College, No College        NaN

[458 rows x 9 columns]

Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Pandas Series.str.cat() to concatenate string.

Licença

0 comentários:

Postar um comentário