0
에 대한 I는 다음과 같습니다 데이터 프레임이 있습니다함은 히스토그램
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 개 빈 간격으로 만 법적 1 값을 분할하기 위해 노력하고있어.
[0-6], [6-9], [9-12], [12-16], [16-20], [20-24]
데이터는 다음과 같을 것이다 수집 : 간격은 같이 나는 CX 축에 빈 간격 히스토그램을 만들려고하고,의 주파수입니다
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
유효한 값이 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
을 사용하여 막대 그래프에이 값을 플로팅 할 수 있습니까?