-1
votes

Comment convertir le Dataframe en dictionnaire

J'ai un fichier de données comme celui mentionné ci-dessous.

p>

i Voulez-vous avoir un dictionnaire pour toutes les colonnes non nuls du Dataframe ci-dessus comme celui ci-dessous. P>

{
(0, 'aan'): 1,
 (0, 'abcc'): 1,
 (1, 'acd'): 1,
 (3, 'access'): 5,
 (3, 'acd'): 3,
 (4, 'aao'): 2,
 (4, 'access’): 4
}


3 commentaires

Est-ce que cela répond à votre question? Convertir la rangée de Dataframe en dict


Je cherche en fait une paire de lignes et de colonnes et de la valeur (si sa valeur n'est pas zéro)


Quel est exactement le problème? S'il vous plaît voir exemple de reproductible minimal , Comment demander , centre d'aide .


3 Réponses :


0
votes

Peut-être, il y a deux étapes pour faire face au problème:

  1. Obtenez le booléen, que l'élément soit 0 li>
  2. résumer la valeur li> OL>
        result = (df==0).sum()
        result.to_dict() # convert data to dict
    


2 commentaires

La ligne et la colonne doivent maintenir des valeurs individuelles. Cela n'apportera pas le résultat du désir.


Oui, cela ne fait que statisser la colonne non nulle. Ce n'est pas une méthode parfaite.



0
votes

Vous le conduisez à travers une matrice clairsemée et renvoyez le DataFrame comme dict. Malheureusement, Pandas a des capacités de matrice rares limitées, nous devons donc utiliser Scipire. Le code suivant devrait fonctionner pour votre application.

{(0, 0): 4,
 (0, 1): 7,
 (0, 3): 3, # Notice (0,2) is gone.
 (0, 4): 4,
 (0, 5): 8,
 (0, 6): 6,
 (0, 8): 5,
 (0, 9): 3,
 (1, 0): 3,
 (1, 1): 3,
 (1, 2): 9,
 (1, 3): 2,
 (1, 4): 1,
 (1, 5): 2,
 (1, 6): 8,
 (1, 7): 2,
 (1, 8): 7,
 (1, 9): 2,
 (2, 1): 1, # Notice (2,0) is gone.
 (2, 2): 5,
 (2, 3): 5,
 (2, 4): 4,
 (2, 5): 3,
 (2, 6): 2,
 (2, 8): 4,
 (2, 9): 1,


1 commentaires

Cette solution est parfaite. Merci beaucoup pour cela. Existe-t-il une façon d'avoir le nom de la colonne sur l'indice de colonne? Étant donné que votre df a un nom de colonne comme (0 1 2 3 4 5 6 7 8 9), il apparaît donc que, dans le cas de la colonne, le nom de la colonne n'est pas un numéro d'index.



0
votes

Voici une approche de force très basique et brute. Est-ce que pas échelle. xxx

impression xxx


1 commentaires

Il me donne une erreur "AttributeError:" L'objet Pandas 'n'a aucun attribut "-". J'utilise ce code. df = idf_df maître = {} pour t dans df.itertères (): _ = {(t.index, col): getattr (t, col) pour col) pour col dans df.Columns si getattr (t, col)} Si non < I>: Continuer Master.UPDate ()