[python] Pandas Groupby 값 범위
pandas에서 groupby
값 증가 범위 를 호출하는 쉬운 방법이 있습니까? 예를 들어 아래 예제에서 열 B
을 비닝하고 그룹화 할 수 있습니다. 예를 들어 열의 0.155
처음 두 그룹 B
은 ‘0-0.155, 0.155-0.31 …’
import numpy as np
import pandas as pd
df=pd.DataFrame({'A':np.random.random(20),'B':np.random.random(20)})
A B
0 0.383493 0.250785
1 0.572949 0.139555
2 0.652391 0.401983
3 0.214145 0.696935
4 0.848551 0.516692
또는 먼저 해당 증분에 따라 데이터를 새 열로 분류 한 다음 groupby
열에 적용 할 수있는 관련 통계를 결정하는 데 사용할 수 A
있습니까?
답변
다음에 관심이있을 수 있습니다 pd.cut
.
>>> df.groupby(pd.cut(df["B"], np.arange(0, 1.0+0.155, 0.155))).sum()
A B
B
(0, 0.155] 2.775458 0.246394
(0.155, 0.31] 1.123989 0.471618
(0.31, 0.465] 2.051814 1.882763
(0.465, 0.62] 2.277960 1.528492
(0.62, 0.775] 1.577419 2.810723
(0.775, 0.93] 0.535100 1.694955
(0.93, 1.085] NaN NaN
[7 rows x 2 columns]
답변
이 시도:
df = df.sort('B')
bins = np.arange(0,1.0,0.155)
ind = np.digitize(df['B'],bins)
print df.groupby(ind).head()
물론 그룹에서뿐만 아니라 모든 기능을 사용할 수 있습니다 head
.