Me gustaría transformar un JSON con la siguiente entrada:
{
"039.png": [
"finding1"
],
"006.png": [
"finding1",
"finding2"
],
"012.png": [
"nofinding"
]}
en un marco de datos con el siguiente diseño:
| image | finding1 | finding2 | nofinding |
| ------- | -------- | -------- | --------- |
| 039.png | true | false | false |
| 006.png | true | true | false |
| 012.png | false | false | true |
Por ahora he probado:
import pandas as pd
import json
from pandas.io.json import json_normalize
with open('file.json') as data_file:
data = json.load(data_file)
df = pd.json_normalize(data)
df = df.transpose()
df.head()
Sin embargo, esto resulta en:
039.png [finding1]
006.png [finding1, finding2]
012.png [nofinding]
Además, también me gustaría programar la ruta de retorno para poder crear el formato JSON dado a partir del formato de tabla deseado.
Muchas gracias de antemano
Solución del problema
Es sencillo con get_dummies
:
data = {
"039.png": [
"finding1"
],
"006.png": [
"finding1",
"finding2"
],
"012.png": [
"nofinding"
]}
df = pd.DataFrame.from_dict(data, orient='index')
print(pd.get_dummies(df, prefix='', prefix_sep='', dtype=bool))
Producción:
finding1 nofinding finding2
039.png True False False
006.png True False True
012.png False True False
No hay comentarios.:
Publicar un comentario