Olá Wellington!
Seguindo esses passos você conseguirá trabalhar com as informações que você precisa. Apenas importe a biblioteca do json.
import json
import pandas as pd
tmdb = pd.read_csv("tmdb_5000_movies.csv")
tmdb.head()
Depois mude o nome da coluna de id para movie_id, porque no campo genêro tem um parâmetro que também chama a id.
tmdb=tmdb.rename(columns = {'id':'movie_id'})
Agora crie uma lista com os campos que apresentam os dados em forma de dicionário como o campo gênero. E passe para json.
json_cols = 'genres','keywords','production_companies','production_countries','spoken_languages'
for c in json_cols:
tmdb[c] = tmdb[c].map(json.loads)
Defina essas funções, no caso eu mantive a coluna title e movie_id
def value_update(s, d, idxes):
for idx in idxes:
d[idx] = s[idx]
def calculate_json_col(row, src_col, kept_cols):
df = None
if row[src_col]:
df = pd.DataFrame.from_records(row[src_col])
else:
df = pd.DataFrame()
if kept_cols:
value_update(row, df, kept_cols)
return df
def collect_json_col(src_df, src_col, kept_cols):
return pd.concat(\
map(lambda x: calculate_json_col(src_df.loc[x],\
src_col, kept_cols),\
src_df.index),\
axis=0, ignore_index=True)
kept_cols = ['title', 'movie_id']
Agora é só chamar a função com o campo que você precisa alterar no caso é o genêros (genres)
genres_df = collect_json_col(tmdb, 'genres', kept_cols)
genres_df.info()
Você vai perceber que mantive a coluna movie_id, title acrescentando as colunas name e id que antes fazia parte de genres.