domingo, 18 de abril de 2021

Python - Comparação e seleção de dados em pandas

O mais importante na Análise de Dados é comparar valores e selecionar os dados de acordo. O operador “==” funciona para vários valores em um dataframe Pandas também. Os dois exemplos a seguir mostram como comparar e selecionar dados de um dataframe Pandas.

Para baixar o arquivo CSV utilizado, clique aqui.

Exemplo #1: Comparando dados

No exemplo a seguir, um dataframe é feito de um arquivo csv. Na coluna Gender, existem apenas 3 tipos de valores (“Male”, “Female” ou NaN). Cada linha da coluna Gender é comparada a “Male” e uma série booleana é retornada depois disso.

# importando o pacote pandas
import pandas as pd

# Criando um dataframe a partir
# de um arquivo csv
data = pd.read_csv("employees.csv")

# Criando uma serie com valores booleanos
# para cada linha que tiver o valor "Male"
# na coluna Gender é adicionado um valor
# True a serie new
new = data["Gender"] == "Male"

# Inserindo a serie new no dataframe data
# como uma nova coluna
data["New"] = new

print(data)

Conforme mostrado na saída abaixo, para Gender = “Male”, o valor na nova coluna new é Verdadeiro e para os valores “Female” e NaN é Falso.

Saída:

    First Name  Gender  Start Date Last Login Time  Salary  Bonus % Senior Management                  Team    New
0      Douglas    Male    8/6/1993        12:42 PM   97308    6.945              True             Marketing   True
1       Thomas    Male   3/31/1996         6:53 AM   61933    4.170              True                   NaN   True
2        Maria  Female   4/23/1993        11:17 AM  130590   11.858             False               Finance  False
3        Jerry    Male    3/4/2005         1:00 PM  138705    9.340              True               Finance   True
4        Larry    Male   1/24/1998         4:47 PM  101004    1.389              True       Client Services   True
..         ...     ...         ...             ...     ...      ...               ...                   ...    ...
995      Henry     NaN  11/23/2014         6:09 AM  132483   16.655             False          Distribution  False
996    Phillip    Male   1/31/1984         6:30 AM   42392   19.675             False               Finance   True
997    Russell    Male   5/20/2013        12:39 PM   96914    1.421             False               Product   True
998      Larry    Male   4/20/2013         4:45 PM   60500   11.985             False  Business Development   True
999     Albert    Male   5/15/2012         6:24 PM  129949   10.169              True                 Sales   True

[1000 rows x 9 columns]

Exemplo #2: Seleção de dados

No exemplo a seguir, a série booleana é passada para data e apenas Linhas com Gender = ”Male” ou Nan são retornadas.

# importando o pacote pandas
import pandas as pd

# Criando um dataframe a partir
# de um arquivo csv
data = pd.read_csv("employees.csv")

# Criando uma serie com valores booleanos
# para cada linha que tiver o valor diferente de "Female"
# na coluna Gender é adicionado um valor
# True a serie new
new = data["Gender"] != "Female"

# Inserindo a serie new no dataframe data
# como uma nova coluna
data["New"] = new

print(data)

Conforme mostrado na saída abaixo, o dataframe com Gender = ”Male” ou NaN é retornado.

Saída:

    First Name  Gender  Start Date Last Login Time  Salary  Bonus % Senior Management                  Team    New
0      Douglas    Male    8/6/1993        12:42 PM   97308    6.945              True             Marketing   True
1       Thomas    Male   3/31/1996         6:53 AM   61933    4.170              True                   NaN   True
[thor@localhost geeksforgeeks]$ /bin/python3.8 /home/thor/Documentos/working/geeksforgeeks/teste.py
    First Name  Gender  Start Date Last Login Time  Salary  Bonus % Senior Management                  Team    New
0      Douglas    Male    8/6/1993        12:42 PM   97308    6.945              True             Marketing   True
1       Thomas    Male   3/31/1996         6:53 AM   61933    4.170              True                   NaN   True
2        Maria  Female   4/23/1993        11:17 AM  130590   11.858             False               Finance  False
3        Jerry    Male    3/4/2005         1:00 PM  138705    9.340              True               Finance   True
4        Larry    Male   1/24/1998         4:47 PM  101004    1.389              True       Client Services   True
..         ...     ...         ...             ...     ...      ...               ...                   ...    ...
995      Henry     NaN  11/23/2014         6:09 AM  132483   16.655             False          Distribution   True
996    Phillip    Male   1/31/1984         6:30 AM   42392   19.675             False               Finance   True
997    Russell    Male   5/20/2013        12:39 PM   96914    1.421             False               Product   True
998      Larry    Male   4/20/2013         4:45 PM   60500   11.985             False  Business Development   True
999     Albert    Male   5/15/2012         6:24 PM  129949   10.169              True                 Sales   True

[1000 rows x 9 columns]

Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Data Comparison and Selection in Pandas.

Licença

0 comentários:

Postar um comentário