Comment créer un dictionnaire d'un dictionnaire d'un dictionnaire à partir d'une trame de données pandas

la grotte

J'ai un dataframe pandas qui ressemble à ceci:

Copy    sequence    type    ntv
1        1           A      0.45
1        1           R2     0.878
1        1           R3     1.234
1        2           A      -7.890
1        2           R2     2.345
1        2           R3     -0.871
2        1           A      -0.098
2        1           R2     -0.007
2        1           R3     9.089
2        2           A      1.567
2        2           R2     -0.764
2        2           R3     17.908
3        1           A      4.980
3        1           R2     2.34
3        1           R3     1.280
3        2           A      -9.189
3        2           R2     -7.09
3        2           R3     -0.009

La trame de données est constituée de 3 copies comme dans la première colonne. Chacune de ces copies contient les mêmes éléments, c'est-à-dire qu'elles ont chacune 2 séquences, elles-mêmes constituées de 3 types différents : A, R2 et R3.

Comment puis-je créer un dictionnaire d'un dictionnaire d'un dictionnaire qui ressemble à ceci :

d1 = {sequence:{type:{Copy:ntv}}}

Alors que par exemple si je dis :

d2 = d1[1][‘R2’]
rank = sorted(d2.items(), key =operator.itemgetter(1))
pprint(rank)

Il doit imprimer un dictionnaire (illustré ci-dessous) où toutes les valeurs ntv ont été triées, indiquant quel numéro de copie a la valeur ntv la plus faible ou la plus élevée pour la séquence 1 de type R2.

{2: -0.007,
 1: 0.878, 
 3: 2.34}

Aussi, j'attends vos suggestions avec impatience si vous avez de meilleures idées sur la façon de s'y prendre. Merci d'avance!

schwobaseggl

Vous pouvez faire qc selon ces lignes, en utilisant un collections.defaultdict:

from collections import defaultdict

def nested_dict():
    return defaultdict(nested_dict)

d = nested_dict()

for _, row in df.iterrows():
    d[row['sequence']][row['type']][row['Copy']] = row['ntv']

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  2. 2

    Modbus Python Schneider PM5300

  3. 3

    Comment faire une recherche partielle et obtenir un score pertinent dans Elasticsearch

  4. 4

    Autocomplete avec java, Redis, Recherche élastique, Mongo

  5. 5

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  6. 6

    Comment utiliser HttpClient avec TOUT cert ssl, quelle que soit la « mauvaise » est

  7. 7

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  8. 8

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  9. 9

    MasterService d'ElasticSearch prend trop de temps pour calculer l'état du cluster et lancer ProcessClusterEventTimeoutException

  10. 10

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  11. 11

    Quelque chose dans le cluster Elasticsearch 7.4 devient de plus en plus lent avec les délais de lecture de temps en temps

  12. 12

    Microsoft.WebApplication.targets

  13. 13

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  14. 14

    Comment changer la couleur de la police dans R?

  15. 15

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    Exporter la table de l'arborescence vers CSV avec mise en forme

  18. 18

    Résultat de l'échantillonneur JMeter : comprendre le temps de chargement, le temps de connexion et la latence

  19. 19

    Ajustement non linéaire avec R

  20. 20

    comment copier du contenu et le mettre dans un pdf nouvellement créé en utilisant iText

  21. 21

    php ajouter et fusionner des données de deux tables

chaudétiquette

Archive