0
votes

Comment insérer des données manquantes dans le Dataframe?

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 :


0
votes

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 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>: xxx pré>

sortie: p>

      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


5 commentaires

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.



0
votes

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 xxx


11 commentaires

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"



0
votes

Vous pouvez utiliser Reindex 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 )


0 commentaires

0
votes

Vous pouvez utiliser df.iloc [-1] pour ajouter les valeurs manquantes et utiliser json.dumps (données, true_keys = true) pour lire le < Code> JSON fichier xxx


0 commentaires