programing

값의 범위에 따라 그룹화된 판다

megabox 2023. 7. 23. 14:11
반응형

값의 범위에 따라 그룹화된 판다

판다에게 동물을 유인할 수 있는 쉬운 방법이 있습니까?groupby값의 증가 범위에서?예를 들어 아래의 예를 들어, I 빈과 그룹 열을 사용할 수 있습니다.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?

관심이 있을 수 있습니다.

>>> 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_values('B')
bins =  np.arange(0, 1.0, 0.155)
ind = np.digitize(df['B'], bins)
    
print df.groupby(ind).head() 

물론 그룹에 대한 모든 기능을 사용할 수 있습니다.head.

이것이 기능별 그룹을 사용하는 방법입니다.

df1=data
bins = [0,40,50,60,70,100]
group_names=['F','S','C','B','A']
df1['grade']=pd.cut(data['student_mark'],bins,labels=group_names)
df1

언급URL : https://stackoverflow.com/questions/21441259/pandas-groupby-range-of-values

반응형