Ich habe einen Datenrahmen, die wie folgt aussieht:Bins für Histogramm
legal value
0 1 3
1 1 7
2 0 10
3 1 12
4 1 4
5 1 17
6 0 21
7 1 19
8 1 3
9 0 18
10 1 17
11 1 17
12 0 11
13 1 23
und ich versuche, nur die gesetzlichen Werte in 6 sind Intervalle für ein Histogramm zu teilen. Die Intervalle wie folgt aussehen:
[0-6], [6-9], [9-12], [12-16], [16-20], [20-24]
Die gesammelten Daten dann würde wie folgt aussehen:
bin frequency values
0-6 3 3, 4, 3
6-9 1 7
9-12 1 12
12-16 1 12
16-20 4 17, 17, 19, 17
20-24 1 23
Ich versuche, ein Histogramm mit den bin Abständen auf der cx-Achse zu erzeugen, und die die Frequenz des gültig Werte auf der y-Achse. Grundsätzlich versucht man ein Histogramm zu erstellen, das so aussieht example.
Bisher hat ich dies geschrieben:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from collections import defaultdict
bins = ['0-6', '6-9', '9-12', '12-16', '16-20', '20-24']
df = pd.read_csv('data.csv', encoding = 'ISO-8859-1')
d = defaultdict(int)
for legal, value in zip(df['legal'], df['value']):
if (legal == 1):
if (0 <= value <= 6):
d[bins[0]] += 1
zur Gruppierung versucht, die Behälter mit Wörterbuch, aber dies scheint über komplizierte und ihr muss ein besserer Weg mit der pandas
Bibliothek sein.
Wie kann ich etwas wie pandas.Dataframe.groupby
verwenden, um die Bins mit ihren jeweiligen Häufigkeiten zu gruppieren, und dann diese Werte in einem Histogramm unter Verwendung von matplotlib.pyplot
?