Hier ist mein Versuch, etwas einfacher.Konvertieren Sie ein GroupBy-Objekt (groupby(). Größe) in ein Wörterbuch
demo = pd.DataFrame(data=np.array([["APPLE", "APPLE", "APPLE", "MANGO", "MANGO"],
["DOWN", "DOWN", "DOWN", "UP", "DOWN"]]))
demo = demo.T
demo.columns = ['FRUIT', 'DIRECTION']
Hier ist, was die oben Datenrahmen wie
FRUIT DIRECTION
0 APPLE DOWN
1 APPLE DOWN
2 APPLE DOWN
3 MANGO UP
4 MANGO DOWN
und jetzt
labels = demo["DIRECTION"]
l, v = np.unique(labels, return_counts=True)
d = dict(zip(l, v))
print(d)
Spalte Das gibt mir die einmalige zählt der 'ANFAHRT' aussieht.
{'DOWN': 3, 'UP': 2}
Nun, was ist, wenn ich die Frequenz der Zählungen von ‚FRUIT‘ Spalte gruppiert nach ‚direction‘ Spalte finden wollte.
Ich habe dies getan.
Dies gab mir,
FRUIT DIRECTION
APPLE DOWN 3
MANGO DOWN 1
UP 1
Ich habe Probleme mit dem oben ausgegeben.
Ich wollte folgend in die Lage sein zu tun:
a) APPLE nichts in der AUF-Richtung hat, so wollte ich, dass als 0 wie die Tabelle unten angegeben zeigen.
FRUIT DIRECTION
APPLE DOWN 3
UP 0
MANGO DOWN 1
UP 1
b) Ich wollte in der Lage sein, es wie so
{'APPLE': {DOWN: 3, UP: 0}, 'MANGO': {DOWN: 1, UP: 1}}
Jede andere Art und Weise in ein Wörterbuch zu erstellen, die oben Wörterbuch zu reproduzieren ist auch in Ordnung. Ich verwende Python 3.
Vielen Dank .. Wie beende ich Teil b? Es tut mir Leid..Ich lerne immer noch Wörterbücher zu benutzen. –
@josh Ich wollte gerade Post bekommen, als ich Max 'Antwort mit _exactly_ die gleiche Sache sah. Ich hatte keine andere Wahl als zu verbessern. –
@Abhishek, ich habe auch eine Lösung für den Teil 'b' hinzugefügt ;-) – MaxU