python : clé de dictionnaire comme index de ligne, valeurs comme en-têtes de colonne. Comment puis-je renvoyer et sélectionner des valeurs spécifiques dans un df à l'aide d'un dictionnaire ?

Asseedd

J'ai un dataframe qui ressemble à ceci:

a=['a','b','c','d']
b=['the','fox','the','then']
c=['quick','jumps','lazy','barks']
d=['brown','over','dog','loudly']
df=pd.DataFrame(zip(a,b,c,d),columns=['indexcol','col1','col2','col3'])

et un dictionnaire qui ressemble à ceci :

keys=['a','b','c','d']
vals=[]
vals.append(['col1','col3'])
vals.append(['col1','col2'])
vals.append(['col1','col2','col3'])
vals.append(['col2','col3'])
newdict = {k: v for k, v in zip(keys, vals)}

Ce que j'essaie de faire est de créer une nouvelle colonne dans df qui construit une déclaration pour chaque ligne. En prenant la première ligne comme exemple, la phrase devrait ressembler à ceci :

"col1 est 'le' | col3 est 'paresseux' "

un autre exemple utilisant la 3ème ligne juste pour rendre la tâche à accomplir parfaitement claire : "col1 est 'marron' | col2 est 'le' | col3 est 'alors' "

essentiellement, je veux faire référence aux valeurs du dictionnaire pour rechercher la colonne dans df en utilisant les clés du dictionnaire comme référence de ligne correspondant à indexcol dans df.

Merci d'avance.

Andrej Kesley

Je ne sais pas si j'ai bien compris mais tu peux essayer :

df = df.set_index("indexcol")

for k, v in newdict.items():
    row = df.loc[k]
    df.loc[k, "new_column"] = " | ".join(f"{i} is '{row[i]}'" for i in v)

print(df.reset_index())

Impressions :

  indexcol  col1   col2    col3                                      new_column
0        a   the  quick   brown                 col1 is 'the' | col3 is 'brown'
1        b   fox  jumps    over                 col1 is 'fox' | col2 is 'jumps'
2        c   the   lazy     dog  col1 is 'the' | col2 is 'lazy' | col3 is 'dog'
3        d  then  barks  loudly              col2 is 'barks' | col3 is 'loudly'

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

    Microsoft.WebApplication.targets

  2. 2

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

  3. 3

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  4. 4

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

  5. 5

    Passer la taille d'un tableau 2D à une fonction ?

  6. 6

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

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  9. 9

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  10. 10

    php ajouter et fusionner des données de deux tables

  11. 11

    Créer un système Buzzer à l'aide de python

  12. 12

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

  13. 13

    Comment changer la couleur de la police dans R?

  14. 14

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  15. 15

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  16. 16

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

  17. 17

    comment afficher un bouton au-dessus d'un autre élément ?

  18. 18

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

  19. 19

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  20. 20

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

  21. 21

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

chaudétiquette

Archive