Je suis très nouveau à Python, je dois résoudre ce cas d'utilisation.El vous aidez s'il vous plaît aidez-moi à résoudre ce problème?
Ceci est mon fichier JSON P>
id value 1 whats up 2 what 3 space 4 space 5 hi 6 space . . . 77 hello . . . upto 190
4 Réponses :
Un sur votre façon de travailler avec ceci est de définir un objet de votre JSON, puis de la mettre dans le Dataframe avec sortie: p> pd.read_json () code>. Enfin utiliser sort_values () code> pour trier l'ascendant. Ensuite, je ne trouve aucune option meilleure que de créer un support_df code> qui sera utilisé pour ajouter les lignes supplémentaires nécessaires et enfin np.where code> pour maintenir la valeur correspondant à L'original df code> ou utilisez espace code> à partir de support_df code>: id value
0 1 whats up
1 2 what
2 3 space
3 4 space
4 5 HI
.. ... ...
185 186 space
186 187 space
187 188 space
188 189 space
189 190 hello
Ceci est déjà fait. J'ai besoin de remplir les rangées manquantes avec des entiers
Oui !! Merci !! J'essaie également de résoudre la deuxième partie seulement.Tell me me réinitialiser la méthode? Fonctionnera ici
Merci beaucoup!!!! Cela fonctionne et dites-moi une dernière chose que la logique que vous avez utilisée .. Avez-vous créé un autre fichier de données avec une carte d'identité de colonne contient de 1 à 190 et que toute la valeur des cellules est de l'espace, puis vous avez rejoint deux dataframes en une seule fois en utilisant la fusion ?? Est ce juste? Ou me faire comprendre le code s'il vous plaît?
support_df = pd.dataframe ({"ID": plage (min (DF [ID ']), max (DF [ID'] + 1)), 'val ue_aux': "espace"}) dans cette pièce de code. Vous avez mentionné max (df ['id' + 1]) à droite, mais je ne veux pas que la valeur maximale dans mon identifiant JSON Je souhaite toujours entier 190 seulement pourriez-vous me suggérer de changer de code
Oui si vous voulez 190 en tant que valeur max, quelle que soit la valeur du JSON, vous pouvez simplement coder le critère de 190 dans la plage.
pour JSON au dictionnaire Vous pouvez utiliser directement JSON normaliser, puis appliquer SET_IDEX sur IT et SET ID comme index. Ensuite, sur le nouveau Dataframe Appliquer np.re_index et np.arange
Cela résoudra vraiment le deuxième problème comme remplir le nombre d'entiers manquant dans la colonne ID? Je suis déjà converti en Dataframe de Json. Je veux remplir les entiers manquants! s'il te plaît
Je travaille sur la 2e partie mais pour le 1er à la place, vous pouvez l'utiliser.
@ user11646543 Vérifiez simplement que j'ai mis à jour le code avec ce que vous voulez et si vous souhaitez utiliser votre code pour JSON vers Dataframe pour les valeurs manquantes, il vous suffit d'ajouter la dernière ligne et cela fonctionnera.
Comme vous l'avez demandé, vous voudrez toujours entier 190: df.reindex (np.arange (df.id.min (), 190)). Fillna ("espace")
Sûr merci mate !!! Je vais juste essayer cela et vous faire savoir pour les nouvelles requêtes
Bien sûr, faites-le moi savoir si vous êtes confronté à un problème et à BTW si vous souhaitez utiliser votre code pour JSON vers dict, ajoutez simplement deux lignes de votre code et vous obtiendrez la sortie souhaitée avec des entrées manquantes.
Oui bien sûr!! Et allez-vous s'il vous plaît expliquer moi que les deux dernières lignes de code Quelle était la logique? S'il vous plaît et aussi m'expliquer si possible si la fonction JSON-normaliser fera? Merci
Comme vous le souhaitez à partir de 1 à 190, NP.ARANGE est utilisé pour obtenir de la valeur dans un intervalle spécifique, puis nous appliquons np.reindex qui conforme à la structure de données vers un nouvel index. Par défaut, il mettra Nan dans toutes les entrées manquantes autres que mentionnées dans votre JSON. Comme vous le souhaitez "espace", nous utilisons FILLNA qui insérera un espace dans toutes les entrées manquantes. pandas.pydata.org/pandas-docs/ Stable / Référence / API / ... Docs.cipy .Org / Doc / Numpy / Référence / Généré / Numpy.arange.ht ml
JSON_NORMALIZE est utilisé pour convertir JSON en DataFrame
Cool merci pour les efforts !!! Une autre requête comme dans votre code que la première méthode Reindex () exécutera ensuite la méthode de .fillna () exécutant à droite ?? Parce que vous avez mentionné la valeur de nom de colonne pour remplir l'espace? Nous devons sélectionner la droite de la colonne de procéder à la méthode FILLNA ()?
Oui d'abord, le Reindex s'exécutera et par défaut dans les entrées manquantes, elle insérera Nan et comme vous le souhaitez "espace" dans les entrées manquantes que nous utilisons FILLNA. Donc, où qu'il y ait nan, il remplacera par "espace"
Vous pouvez utiliser Reindex A > et np.arange (pour créer la complète Liste des index que vous souhaitez) créer des lignes vierges en fonction des valeurs manquantes dans la colonne ID. (Vous devrez Définir la colonne ID comme l'indice d'abord ) p>
Vous pouvez utiliser df.iloc [-1] code> pour ajouter les valeurs manquantes et utiliser json.dumps (données, true_keys = true) code> pour lire le < Code> JSON code> fichier
Voir ceci: Stackoverflow. com / questions / 50066608 / ...