pandas 데이터 전처리 dataframe 의 groupby 조작 방법

데이터 예비 처리 과정 에서 이러한 문제 가 발생 할 수 있 습 니 다.다음 그림:데이터 중의 한 key 는 여러 개의 데이터 가 있 는데 어떻게 각 key 에 대해 똑 같은 연산 을 합 니까?

dataframe 에서 group by 의 동작 을 보 여 주 었 습 니 다."group by"작업 에 대해 우 리 는 보통 다음 과 같은 작업 절 차 를 말 합 니 다.
l(Splitting)일부 규칙 에 따라 데 이 터 를 다른 그룹 으로 나 눕 니 다.
l(Applying)각 그룹의 데이터 에 대해 각각 하나의 함 수 를 실행 합 니 다.
l(Combining)결 과 를 데이터 구조 에 조합 합 니 다.
dataframe 을 사용 하여 groupby 를 실현 하 는 방법:

# -*- coding: UTF-8 -*-
import pandas as pd
df = pd.DataFrame([{'col1':'a', 'col2':1, 'col3':'aa'}, {'col1':'b', 'col2':2, 'col3':'bb'}, {'col1':'c', 'col2':3, 'col3':'cc'}, {'col1':'a', 'col2':44, 'col3':'aa'}])
print df
#  col1    col2  
print df.groupby(by='col1').agg({'col2':sum}).reset_index()
#  col1    col2   
print df.groupby(by='col1').agg({'col2':['max', 'min']}).reset_index()
#  col1 ,col3    col2  
print df.groupby(by=['col1', 'col3']).agg({'col2':sum}).reset_index()
출력 결 과 는:

 col1 col2 col3 
0  a   1  aa 
1  b   2  bb 
2  c   3  cc 
3  a  44  aa 

 col1 col2 
0  a  45 
1  b   2 
2  c   3 

 col1 col2   
    max min 
0  a  44  1 
1  b  2  2 
2  c  3  3 

 col1 col3 col2 
0  a  aa  45 
1  b  bb   2 
2  c  cc   3 
주의 점:
코드 에서 reset 호출 됨index()함수,이 함수 로 출력 하지 않 으 면 다음 과 같 습 니 다:

   col2
col1   
a    45
b    2
c    3
   col2  
   max min
col1     
a   44  1
b    2  2
c    3  3
      col2
col1 col3   
a  aa   45
b  bb    2
c  cc    3
상하 두 결 과 는 차이 가 있 지만 구체 적 인 차 이 는 아직 잘 모 르 겠 지만 아래 의 출력 결 과 는 df[col1]을 사용 하여 첫 번 째 열 을 추출 할 수 없습니다.어떤 이유 인지 아직 잘 모 르 겠 습 니 다.pandas 에 대해 이해 하거나 이 유 를 알 고 있다 면 댓 글 에 남 겨 주세요.
이상 의 pandas 데이터 전처리 dataframe 의 groupby 조작 방법 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기