DataFrame.groupby()에서 보 이 는 여러 가지 용법 에 대한 상세 한 설명

groupby 의 함수 정의:
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
  • by:맵,함수,태그 또는 태그 목록 을 수신 합 니 다.집합 을 확인 하 는 그룹 입 니 다
  • axis:0/1 수신;줄(0)또는 열(1)분할 을 표시 합 니 다
  • level:int,등급 이름 또는 서열 을 수신 하고 기본 값 은 None 입 니 다.축 이 다 중 색인(계층 화)이 라면 하나 이상 의 특정 단계 로 나 누 어 집 니 다
  • as_index:불 값 을 받 습 니 다.기본 Ture;Ture 는 그룹 레이 블 을 인덱스 로 하 는 대상 을 되 돌려 주 고,False 는 그룹 레이 블 을 인덱스 로 하지 않 습 니 다.
  • 다른 매개 변수 해석 은 문 서 를 보 세 요.
    보다
    
    import pandas as pd
    
    df = pd.DataFrame({'Gender' : [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
              'name' : ['   ', '   ', '   ', '   ', '   ', '   ', '   ', '   ', '   '],
              'income' : [4.5, 2.9, 3.8, 3.7, 4.0, 4.1, 1.9, 4.1, 3.2],
             'expenditure' : [1.5, 1.9, 2.8, 1.7, 4.1, 2.5, 1.1, 3.4, 1.2]
             })
    #        
    df_expenditure_mean = df.groupby(['Gender']).mean()
    
    #        
    df_expenditure_mean = df.groupby(['Gender', 'name']).mean()
    
    #         
    df_expenditure_mean = df.groupby(['Gender', 'name'])['income'].mean()
    출력 예시:

     보 이 는 2:groupby.sum()후 계층 색인 levels 위로 이동 하 는 문 제 를 해결 합 니 다.
    위의 그림 에서 출력 2 는 DataFrame 의 형식 이지 만 다른 표 와 일치 해 야 할 때 이 형식 은 좀 번 거 롭 습 니 다.데이터 와 일치 할 때 우리 가 필요 로 하 는 데이터 형식 은 열 이름 이 첫 줄 에 있 고 데이터 줄 에 도 있 을 수 없습니다. Gender 열 과 같은 병합 셀 입 니 다.그래서 우 리 는 약간의 조정 을 해 야 한다.asindex false Ture 。
    
    #        ,   as_index    
    df_expenditure_mean = df.groupby(['Gender', 'name'], as_index=False).mean()
    
    
    
    출력:

    보 이 는 3:groupby.apply()후 계층 색인 levels 위로 이동 하 는 문 제 를 해결 합 니 다.
    보 이 는 2 에서 우 리 는 알 고 있 습 니 다.매개 변수 as 를 사용 합 니 다.index 는 groupby 의 결 과 를 그룹 태그 로 색인 하지 않 지만 나중에 사용 할 수 있 습 니 다. groupby.apply()에서 발견,asindex 매개 변수 가 효 과 를 잃 었 습 니 다.다음 과 같은 예 에서 보 듯 이:
    
    #     as_index=False,               
    df_apply = df.groupby(['Gender', 'name'], as_index=False).apply(lambda x: sum(x['income']-x['expenditure'])/sum(x['income']))
    df_apply = pd.DataFrame(df_apply,columns=['    '])#   dataframe  
    출력:

    해결 방법: dfapply_index = df_apply.reset_index()
    
    #    df_apply_index = df_apply.reset_index()
    df_apply = df.groupby(['Gender', 'name'], as_index=False).apply(lambda x: sum(x['income']-x['expenditure'])/sum(x['income']))
    df_apply = pd.DataFrame(df_apply,columns=['    '])#   dataframe  
    df_apply_index = df_apply.reset_index()
    출력:

    보 이 는 4:groupby 함수 의 그룹 결 과 를 DataFrame 로 저장 합 니 다.
    보 이 는 1 의 출력 3 은 분명 하 다.  Series,DataFrame 형식의 데이터 로 변환 해 야 합 니 다.
    
    #         ,     DataFrame
    df_expenditure_mean = df.groupby(['Gender', 'name'], as_index=False)['income'].mean()
    df_expenditure_mean = pd.DataFrame(df_expenditure_mean)#   dataframe  
    df_expenditure_mean.rename(columns={'income':'    '}, inplace = True)
    출력:

    DataFrame.groupby()에 보 이 는 다양한 용법 에 대한 자세 한 설명 은 여기까지 입 니 다.DataFrame.groupby()용법 에 관 한 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기