1
resposta

Extrair valor de uma coluna

Boa noite professor

Queria saber como limpo o dados de um dicionary pegando somente a informação util contida nele.

Um exemplo é o DataSet do TMDB 5000 filmes, que em uma coluna de genero existe o ID e um monte de sujeira e depois o genero real, queria poder extrair essa informação

exemplo: vamos imaginar que esta é minha coluna genero

     Genero 

{(id:name,terror}) {(id:name,Ação})

queria poder extrair o valor terror ou ação dessa coluna. Como posso fazer isso? pq toda vez que tento extrair não consigo, pq ele encara que o valor do genero é o dicionary inteiro assim: {(id:name,terror}) e não só o terror.... e como tenho 5.000 dados, não dá para simplesmente mudar lá o valor manualmente.

1 resposta

Olá Bruno,

Peço desculpas pela demora, mas caso você ou mais alguém tenha essa dúvida vou tentar ajudar.

Como sempre existem mais de uma maneira de tratar isso, uma possibilidade seria aplicar uma função em cada item da coluna gênero que pega apenas a informação desejada, exemplo:

def get_genero(genero):
    # Como temos um array escrito como string podemos
    # utilizar o eval para transformar em código python
    genero_array = eval(genero)

    return ', '.join([g['name'] for g in genero_array])

# Aqui aplicamos a função acima em cada gênero do DataFrame
movies['genres'] = movies.genres.apply(get_genero)

É importante saber que a função eval pode ser perigosa caso você não conheça o que está sendo passado para ela, nesse caso sabemos que são apenas arrays, mas devemos ter cuidado em utilizar com informações vindas do usuário por exemplo.

Resultado da coluna genres:

genres
Action, Adventure, Fantasy, Science Fiction
Adventure, Fantasy, Action
Action, Adventure, Crime
Action, Crime, Drama, Thriller
Action, Adventure, Science Fiction
Fantasy, Action, Adventure
Animation, Family
Action, Adventure, Science Fiction
Adventure, Fantasy, Family
Action, Adventure, Fantasy
Adventure, Fantasy, Action, Science Fiction
Adventure, Action, Thriller, Crime
Adventure, Fantasy, Action