1
resposta

dataset diferente apos aplicar função ip_para_pais

Após aplicar a function

def ip_para_pais(ip):
    tmp = ISP_df[(ISP_df.limite_inferior_ip <= ip)
            & (ISP_df.limite_superior_ip >= ip)].pais
    if tmp.shape[0] == 1:
        return tmp.iloc[0]
    elif tmp.shape[0] < 1:
        return print("Faltando")
    elif tmp.shape[0] > 1:
        return print("Erro")

fraude_df["pais"] = fraude_df.ip.apply(ip_para_pais)

Meu dataset ficou diferente em que todos os casos não possuem país. Alguem sabe a razão disso?

1 resposta

Oii João, tudo certo?

Desculpa a demora pra te responder. Eu tive esse mesmo problema e estava sendo gerado por essa linha de código:

ISP_df.limite_inferior_ip = ISP_df.limite_inferior_ip.astype(int)

Essa linha de código representa a conversão dos dados para o tipo inteiro, mas ela está transformando os números de maneira errada, ou seja, quando a função ip_para_pais é usada fica o resultado daquela forma que você estava vendo. Se você comentar essa linha e rodar novamente o código, ele vai gerar a tabela da forma correta, como mostrada na aula.

Qualquer dúvida a mais, estou por aqui, ok?

Bons estudos ^^