Python 은 groupby 그룹 을 나 눈 후 지정 한 위치 기록 방법 을 추출 합 니 다.

데이터 분석,데이터 모델 링 을 할 때 우리 가 먼저 해 야 할 일 은 데 이 터 를 처리 하고 우리 가 필요 로 하 는 정 보 를 추출 하 는 것 이다.데이터 처 리 를 더욱 편리 하 게 할 수 있 도록 groupby 의 용법 을 소개 합 니 다.
우 리 는 흔히 groupby 를 사용 하여 정보 추출 을 할 때 그룹 을 나 눈 후에 견본 의 통 계량(max,min,var 등)을 구한다.만약 지금 우리 가 조 를 나 눈 후 견본 의 두 번 째 기록,마지막 세 번 째 기록 을 취하 기 를 원한 다 면 이것 은 어떻게 조작 해 야 합 니까?우 리 는 첫 번 째,last 를 통 해 그룹 을 나 눈 후 첫 번 째 와 마지막 견본 을 추출 할 수 있다.그러나 우리 가 지정 한 위치의 견본 을 찾 으 려 면 기 존의 함수 가 없다.우리끼리 써 야 겠 다.위의 기능 을 어떻게 실현 하 는 지 소개 하 겠 습 니 다.
1)데이터 소개
action 표 는 모두 3 열 이 있 습 니 다.userid,actionType 과 actionTime 은 각각 사용자 id,사용자 행위 유형 과 행위 발생 시간 을 대표 합 니 다.구체 적 인 형식 은 다음 그림 과 같다.

2)그룹 작업

a = action.groupby('userid') 
b = action.groupby('userid')['actionTime'] 
type(a) 
type(b) 
그룹 을 나 누 면 a 와 b 의 데이터 형식 은 DataFrameGroupBy 와 SeriesGroupBy 입 니 다.

3)취 수 조작
① 사용자 별 2 차/꼴찌 2 차 조작 시간

action.groupby('userid')['actionTime'].apply(lambda i:i.iloc[1] if len(i)>1 else np.nan) 
action.groupby('userid')['actionTime'].apply(lambda i:i.iloc[-2] if len(i)>1 else np.nan) 
② 사용자 별 행동 2 차/꼴찌 2 차 조작 시간

action[action['actionType']==2].groupby('userid')['actionTime'].apply(lambda i:i.iloc[1] if len(i)>1 else np.nan) 
action[action['actionType']==2].groupby('userid')['actionTime'].apply(lambda i:i.iloc[-2] if len(i)>1 else np.nan) 
PS:일부 사용자 들 은 기록 이 하나 밖 에 없 을 수도 있 고 직접 가 져 오 는 것 이 잘못 될 수도 있 기 때문에 저 는 if 로 먼저 판단 합 니 다.
이렇게 하면 우 리 는 그룹 을 나 눈 후 데이터 의 임 의 위치 에 있 는 견본 을 추출 할 수 있다.
이 파 이 썬 은 groupby 에서 그룹 을 나 눈 후에 지 정 된 위치 기록 방법 을 추출 하 는 것 이 바로 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기