J'ai mes données dans la trame de données pandas comme suit:
df1 = pd.DataFrame({'A':['yes','yes','yes','yes','no','no','yes','yes','yes','no'],
'B':['yes','no','no','no','yes','yes','no','yes','yes','no']})
Donc, mes données ressemblent à ceci
----------------------------
index A B
0 yes yes
1 yes no
2 yes no
3 yes no
4 no yes
5 no yes
6 yes no
7 yes yes
8 yes yes
9 no no
-----------------------------
Je voudrais le transformer en un autre bloc de données. La sortie attendue peut être affichée dans le script python suivant:
output = pd.DataFrame({'A':['no','no','yes','yes'],'B':['no','yes','no','yes'],'count':[1,2,4,3]})
Donc, ma sortie attendue ressemble à ceci
--------------------------------------------
index A B count
--------------------------------------------
0 no no 1
1 no yes 2
2 yes no 4
3 yes yes 3
--------------------------------------------
En fait, je peux réussir à trouver toutes les combinaisons et à les compter en utilisant la commande suivante: mytable = df1.groupby(['A','B']).size()
Cependant, il s'avère que ces combinaisons se trouvent dans une seule colonne. Je voudrais séparer chaque valeur d'une combinaison dans une colonne différente et ajouter également une colonne supplémentaire pour le résultat du comptage. Est-il possible de faire ça? Puis-je avoir vos suggestions? Merci d'avance.
set_index()
. Continué à essayer d'utilisergroupby()
pour regrouper des lignes avec une paire de colonnes commune particulière. Incroyable, merci!