Kurz gesagt, was ist meine beste Option für Diagramme vom Typ Verteilung (Histogramm oder Kde), wenn meine Daten gewichtet werden?Diagramme vom Verteilungstyp (Histogramm/Kde) mit gewichteten Daten
df = pd.DataFrame({ 'x':[1,2,3,4], 'wt':[7,5,3,1] })
df.x.plot(kind='hist',weights=df.wt.values)
Das funktioniert gut, aber Seaborn eine Gewichte kwarg nicht akzeptieren, das heißt
sns.distplot(df.x, bins=4, # doesn't work like this
weights=df.wt.values) # or with kde=False added
Es wäre auch schön, wenn kde Gewichte akzeptieren würde, aber weder Pandas noch Seaborn scheint es, zu ermöglichen.
Ich merke BTW, dass die Daten erweitert werden könnten, um die Gewichtung zu fälschen und das ist einfach hier, aber nicht viel mit meinen echten Daten mit Gewichten in den Hunderten oder Tausend, so suche ich nicht nach einer solchen Abhilfe.
Wie auch immer, das ist alles. Ich versuche nur herauszufinden, was (wenn überhaupt) ich mit gewichteten Daten neben dem einfachen Pandas-Histogramm machen kann. Ich habe noch nicht mit Bokeh herumgespielt, aber auch Bokeh-Vorschläge sind willkommen.
Ja, danke, das hilfreich ist. Ich war mir nicht sicher, wie ich den Kwarg an Matplotlib weitergeben sollte. Ich werde jetzt upvote, aber lassen Sie es ein wenig länger offen für den Fall, dass jemand Ideen über Kde oder ähnliches hat. – JohnE
Seaborns kde plots verwendet die Python-Paket-Statmodelle für die Berechnungen. Die relevanten Funktionen nehmen ein Gewichtungsargument an, aber es scheint, dass dies nicht von Seaborn weitergeleitet wird. Die relevanten Quelldateien: https://github.com/mwaskom/seaborn/blob/master/seaborn/distributions.py und https://github.com/statsmodels/statsmodels/blob/master/statsmodels/nonparametric/kde.py – hitzg
OK, danke. Es sieht so aus, als ob Gewichte noch nicht implementiert sind (ich kann das nicht aus einem schnellen Skim sagen). Wie auch immer, ich schließe das jetzt und stelle vielleicht zu einem späteren Zeitpunkt eine Frage, die sich mehr auf kde konzentriert. – JohnE