데이터의 여러 값들을 여러 구간으로 구분할 경우 사용할 수 있는 함수는 pandas 모듈의 cut() 함수를 사용할 수 있다.
pd.cut(객체, 구간수, labels=None, retbins=False, precision=3, include_lowest=False)
- retbins=False이면 위 함수의 결과중의 한 구간을 (a, b]로 표시된다.이것은 어떤값(x)의 범위가 a<x<=b라는 의미이다. (이것은 기본값 즉, default), True일 경우 [a, b] 즉, a<x<b
- include_lowest는 객체의 가장 작은 값을 포함 여부를 지정하는 것으로 기본값은 False로서 포함하지 않는다.
- precisions: 나타낼 또는 저장할 수치의 소수점이하의 자릿수
위함수의 결과의 인덱스는 retbins의 지정에 따라 차이가 난다. 다음을 보자.
In [1]: x1=[1,2,3,4,5]
In [2]: x2=pd.cut(x1, 5, retbins=True, include_lowest=True)
In [3]: x2
Out[3]:
0.995<=x<=1.8, 1.8<x<=2.6, ..., 4.2< x<=5.0
pd.cut(객체, 구간수, labels=None, retbins=False, precision=3, include_lowest=False)
- retbins=False이면 위 함수의 결과중의 한 구간을 (a, b]로 표시된다.이것은 어떤값(x)의 범위가 a<x<=b라는 의미이다. (이것은 기본값 즉, default), True일 경우 [a, b] 즉, a<x<b
- include_lowest는 객체의 가장 작은 값을 포함 여부를 지정하는 것으로 기본값은 False로서 포함하지 않는다.
- precisions: 나타낼 또는 저장할 수치의 소수점이하의 자릿수
위함수의 결과의 인덱스는 retbins의 지정에 따라 차이가 난다. 다음을 보자.
In [1]: x1=[1,2,3,4,5]
In [2]: x2=pd.cut(x1, 5, retbins=True, include_lowest=True)
In [3]: x2
Out[3]:
([(0.995, 1.8], (1.8, 2.6], (2.6, 3.4], (3.4, 4.2], (4.2, 5.0]]
Categories (5, interval[float64]): [(0.995, 1.8] < (1.8, 2.6] < (2.6, 3.4] < (3.4, 4.2] < (4.2, 5.0]], array([ 0.996, 1.8 , 2.6 , 3.4 , 4.2 , 5. ]))
Categories (5, interval[float64]): [(0.995, 1.8] < (1.8, 2.6] < (2.6, 3.4] < (3.4, 4.2] < (4.2, 5.0]], array([ 0.996, 1.8 , 2.6 , 3.4 , 4.2 , 5. ]))
위 결과에서 (0.995, 1.8]만을 호출하기 위해서는 다음과 같이 명령한다.
In [4]: x2[0][0]
Out[4]:Interval(0.995, 1.8, closed='right')
그러나 retbins=False 즉, 기본값을 사용할 경우는
In [5]: x3=pd.cut(x1, 5, include_lowest=True)
In [6]: x3
Out[6]:
([(0.995, 1.8], (1.8, 2.6], (2.6, 3.4], (3.4, 4.2], (4.2, 5.0]]
Categories (5, interval[float64]): [(0.995, 1.8] < (1.8, 2.6] < (2.6, 3.4] < (3.4, 4.2] < (4.2, 5.0]], array([ 0.996, 1.8 , 2.6 , 3.4 , 4.2 , 5. ]))
Categories (5, interval[float64]): [(0.995, 1.8] < (1.8, 2.6] < (2.6, 3.4] < (3.4, 4.2] < (4.2, 5.0]], array([ 0.996, 1.8 , 2.6 , 3.4 , 4.2 , 5. ]))
In [7]: x3[0]
Out[7]:Interval(0.995, 1.8, closed='right')
include_lowest=True로 지정하였기 때문에 아래 결과중 제일 작은 값인 0.995는 첫 구간 값이 포함된다. 다른 구간의 경우 하한값은 포함되지 않는다. 즉, 결과는 다음과 같이 나타낼 수 있다.0.995<=x<=1.8, 1.8<x<=2.6, ..., 4.2< x<=5.0
다음으로 확인할 수 있다.
In [8]: 1.8 in x3[1]
Out[8]:False
댓글
댓글 쓰기