Voici mon essai à quelque chose de plus simple.Convertir un objet GroupBy (groupby(). Size) dans un dictionnaire
demo = pd.DataFrame(data=np.array([["APPLE", "APPLE", "APPLE", "MANGO", "MANGO"],
["DOWN", "DOWN", "DOWN", "UP", "DOWN"]]))
demo = demo.T
demo.columns = ['FRUIT', 'DIRECTION']
Voici ce que la trame de données ci-dessus ressemble
FRUIT DIRECTION
0 APPLE DOWN
1 APPLE DOWN
2 APPLE DOWN
3 MANGO UP
4 MANGO DOWN
et maintenant
labels = demo["DIRECTION"]
l, v = np.unique(labels, return_counts=True)
d = dict(zip(l, v))
print(d)
Cela me donne les comptes uniques de la colonne 'MODE'. Maintenant, et si je voulais trouver la fréquence des comptes de la colonne «FRUIT» groupée par la colonne «DIRECTION».
Je l'ai fait.
Cela m'a donné,
FRUIT DIRECTION
APPLE DOWN 3
MANGO DOWN 1
UP 1
J'ai des problèmes avec la sortie ci-dessus.
Je voulais être en mesure de faire ce qui suit:
a) APPLE n'a rien dans la direction, donc je voulais que montrer 0. comme le tableau ci-dessous.
FRUIT DIRECTION
APPLE DOWN 3
UP 0
MANGO DOWN 1
UP 1
b) Je voulais être en mesure de créer un dictionnaire comme si
{'APPLE': {DOWN: 3, UP: 0}, 'MANGO': {DOWN: 1, UP: 1}}
Toute autre façon de reproduire le dictionnaire ci-dessus est aussi très bien. J'utilise Python 3.
Merci beaucoup .. Comment puis-je accomplir la partie b? Je suis désolé..J'apprends encore à utiliser des dictionnaires. –
@josh J'étais sur le point de frapper la poste, quand j'ai vu la réponse de Max avec _exactement_ la même chose. Je n'avais pas d'autre choix que de changer d'avis. –
@Abhishek, j'ai également ajouté la solution pour la partie 'b' ;-) – MaxU