2 votes

Si vous sauvegardez un dataframe pandas en utilisant 'to_json', et que l'index a un nouveau label, existe-t-il un moyen de conserver ce nom de label dans le fichier ?

Supposons que vous affectiez une colonne à un index en utilisant la fonction

df = df.set_index('new_index')

L'index a maintenant une étiquette, qui est l'étiquette de la colonne qui a été convertie en index.

Si vous l'enregistrez en utilisant

df.to_json('file.json')

L'index n'a pas son ancienne étiquette.

Existe-t-il un moyen de conserver la nouvelle étiquette d'index ?

Raison :

Je travaille avec des fichiers très volumineux et pour gagner de la place, j'élimine l'index. Mais j'aimerais que le fichier donne intrinsèquement des informations sur ce qu'est réellement cette étiquette.

1voto

Bruno Mello Points 3751

J'ai trouvé un moyen d'y remédier, peut-être pas très pythonique mais qui fonctionne :

df_json  = (json.load(open('test.json', 'r')))

df = pd.DataFrame(df_json, index=df_json['units'].keys())

df.reset_index()

'unit' est le nom d'une colonne (puisque vous n'avez pas fourni d'échantillon) et 'test.json' est le nom du JSON.

J'ai trouvé un moyen plus simple :

df.to_json('test.json', orient='split')
df = pd.read_json('test.json', orient='split')

Lorsque vous utilisez le fractionnement, les indices sont conservés dans une colonne séparée, vous pouvez en savoir plus à ce sujet dans la section la documentation de read_json

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X