Comment créer ce tableau à partir d'une trame de données triée ?

nikita1221

J'ai trié le dataframe et maintenant je voudrais créer ce tableau : sortir

Exemple de données :

df4 = {'category': {0: 'HC', 1: 'HC', 2: 'HC', 3: 'AMG HC', 4: 'MUP', 5: 'MUP', 6: 'AMG MUP', 7: 'AMG MUP', 8: 'AMG MUP', 9: 'S', 10: 'S', 11: 'AMG S', 12: 'AMG S'}, 'segment': {0: 'Online', 1: 'Offline', 2: 'Independent', 3: 'Online', 4: 'Online', 5: 'Online', 6: 'Online', 7: 'Offline', 8: 'Independent', 9: 'Online', 10: 'Offline', 11: 'Online', 12: 'Offline'}, 'ytd2018': {0: '1 000', 1: '3 000', 2: '800', 3: '500', 4: '2 000', 5: '1 200', 6: '500', 7: '1 020', 8: '310', 9: '1 500', 10: '2 300', 11: '400', 12: '1 080'}, 'ytd2019': {0: '1 100', 1: '2 800', 2: '920', 3: '450', 4: '1 800', 5: '1 080', 6: '600', 7: '1 020', 8: '440', 9: '2 000', 10: '2 200', 11: '650', 12: '1 100'}, 'Evolution': {0: '10%', 1: '-7%', 2: '15%', 3: '-10%', 4: '-10%', 5: '-10%', 6: '20%', 7: '0%', 8: '42%', 9: '33%', 10: '-4%', 11: '63%', 12: '2%'}}

Remarque : j'ai formaté les colonnes Evolution, ytd2018 et ytd2019, ce sont donc des chaînes

J'ai essayé ce code :

df4 = (df4.reset_index(drop=True)
   .set_index(['category', 'segment'], append=True)
   .unstack()
   .swaplevel(axis=1)
   .sort_index(level=0, axis=1, ascending=False)
   .reindex(['ytd2018, 'ytd2019', 'Evolution'], level=1, axis=1)
#   .sort_index(level=0, axis=0)
)

Mais il imprime des lignes en double avec des valeurs nulles dans les segments, par exemple HC en ligne sans hors ligne et indépendant, puis HC hors ligne sans en ligne et indépendant, etc.

Merci d'avance!

Haricot de mer

Vous pouvez le faire de cette façon :

df5 = (df4.reset_index(drop=True)
          .set_index(['category', 'segment'], append=True)
          .unstack()
          .swaplevel(axis=1)
          .sort_index(level=0, axis=1, ascending=False)
          .reindex(['ytd2018', 'ytd2019', 'Evolution'], level=1, axis=1)
      )

df6 = df5.groupby(level='category', sort=False).first()

Résultat:

print(df6)



segment   Online                   Offline                   Independent                  
         ytd2018 ytd2019 Evolution ytd2018 ytd2019 Evolution     ytd2018 ytd2019 Evolution
category                                                                                  
HC         1 000   1 100       10%   3 000   2 800       -7%         800     920       15%
AMG HC       500     450      -10%    None    None      None        None    None      None
MUP        2 000   1 800      -10%    None    None      None        None    None      None
AMG MUP      500     600       20%   1 020   1 020        0%         310     440       42%
S          1 500   2 000       33%   2 300   2 200       -4%        None    None      None
AMG S        400     650       63%   1 080   1 100        2%        None    None      None

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

Comment créer une trame de données transposée à partir d'une autre trame de données

comment créer une trame de données à partir d'une liste imbriquée dans R?

Comment créer une boucle d'entrée d'un tableau pour une trame de données

Comment créer une colonne dans une trame de données calculée à partir d'une autre trame de données dans R?

Créer une trame de données à plusieurs niveaux à partir d'une trame de données donnée

R - Comment créer une trame de données à partir d'une trame de données avec des conditions?

Créer une trame de données pandas à partir d'un tableau numpy

Comment créer un nouveau tableau de sous-chaînes à partir d'une colonne de tableau de chaînes dans une trame de données Spark

Comment créer une trame de données à une ligne à partir d'un vecteur dans R ?

Comment créer une trame de données Pandas à partir d'une liste complexe

Comment créer une matrice complète à partir d'une trame de données pandas dense

Créer une trame de données simulée dans dplyr à partir d'une autre trame de données

Comment créer une trame de données à plusieurs niveaux à partir d'un dictionnaire à couches inégales ?

Comment créer la matrice à partir d'une trame de données?

Comment créer une trame de données Pandas à partir d'un tuple

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

Python Créer une trame de données à partir d'une trame de données existante

Python Créer une trame de données à partir d'une trame de données existante

Comment créer une table de données imbriquée à partir d'une réponse d'objet de tableau JSON

comment créer plusieurs trames de données à partir d'une autre trame de données dans une boucle

Comment créer plusieurs trames de données à partir d'une trame de données avec plusieurs conditions dans R

Comment créer une trame de données de liste de bords à partir d'une matrice d'adjacence en Python?

Comment créer une trame de données à partir d'une trame de données existante où quelques colonnes sont ajoutées en tant que lignes ?

Comment puis-je créer une trame de données à partir d'une boucle for et ajouter une colonne qui ne sera pas écrasée ?

Créer une nouvelle trame de données indépendante à partir d'une trame existante

Créer une cellule de tableau à partir d'une source de données imbriquée

Comment créer une liste ordonnée imbriquée à partir de données de tableau

Comment créer une table de fréquences à partir d'une trame de données dans R

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

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