0
我有一個數據幀,看起來像這樣:垃圾箱的直方圖
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
,我想只有合法值分成6個箱間隔的直方圖。該區間的樣子:
[0-6], [6-9], [9-12], [12-16], [16-20], [20-24]
收集的數據則是這樣的:
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
我試圖創建的CX軸箱體區間的直方圖,以及在該頻率在y軸上的有效值爲。基本上試圖創建一個像這樣的直方圖example。
到目前爲止,我已經寫了這個:
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
正試圖組字典的垃圾箱,但這似乎過於複雜和它們必須是使用pandas
庫更好的辦法。
我該如何使用pandas.Dataframe.groupby
之類的東西來按照各自的頻率分組,然後使用matplotlib.pyplot
將這些值繪製在直方圖上?