J'ai quelques difficultés à importer un fichier JSON avec des pandas.
import pandas as pd
map_index_to_Word = pd.read_json('people_wiki_map_index_to_Word.json')
C'est l'erreur que je reçois:
ValueError: If using all scalar values, you must pass an index
La structure de fichier est simplifiée comme ceci:
{"biennials": 522004, "lb915": 116290, "shatzky": 127647, "woode": 174106, "damfunk": 133206, "nualart": 153444, "hatefillot": 164111, "missionborn": 261765, "yeardescribed": 161075, "theoryhe": 521685}
Il provient du cours d’apprentissage automatique de l’Université de Washington sur Coursera. Vous pouvez trouver le fichier ici .
Essayer
ser = pd.read_json('people_wiki_map_index_to_Word.json', typ='series')
Ce fichier ne contient que des paires de valeurs clé où les valeurs sont des scalaires. Vous pouvez le convertir en une structure de données avec ser.to_frame('count')
.
Vous pouvez aussi faire quelque chose comme ça:
import json
with open('people_wiki_map_index_to_Word.json', 'r') as f:
data = json.load(f)
Maintenant, les données sont un dictionnaire. Vous pouvez le transmettre à un constructeur dataframe comme ceci:
df = pd.DataFrame({'count': data})
Je pense que ce qui se passe est que les données dans
map_index_to_Word = pd.read_json('people_wiki_map_index_to_Word.json')
est lu comme une chaîne au lieu d'un json
{"biennials": 522004, "lb915": 116290, "shatzky": 127647, "woode": 174106, "damfunk": 133206, "nualart": 153444, "hatefillot": 164111, "missionborn": 261765, "yeardescribed": 161075, "theoryhe": 521685}
est en fait
'{"biennials": 522004, "lb915": 116290, "shatzky": 127647, "woode": 174106, "damfunk": 133206, "nualart": 153444, "hatefillot": 164111, "missionborn": 261765, "yeardescribed": 161075, "theoryhe": 521685}'
Puisqu'une chaîne est un scalaire, elle veut que vous la chargiez en tant que JSON, vous devez la convertir en dict, ce que fait exactement l'autre réponse
Le meilleur moyen est de faire un json chargé sur la chaîne pour le convertir en dict et le charger en pandas
myfile=f.read()
jsonData=json.loads(myfile)
df=pd.DataFrame(data)