Python 은 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 에서 그룹 을 나 눈 후에 지 정 된 위치 기록 방법 을 추출 하 는 것 이 바로 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.여러분 들 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
답: pandas GroupBy를 사용하여 각 그룹의 통계 데이터(예를 들어 계수, 평균값 등)를 얻습니까?답변:pandas GroupBy를 사용하여 각 그룹의 통계 데이터(예를 들어 계수, 평균값 등)를 얻습니까?2015년 9월 26일 그룹당 줄 수를 가져오는 가장 간단한 방법은 호출.size(), 반환Series: 일반적으로 이 결과는 DataFrame 가 아니라 Series 이 되기를 원하므로 다음을 수행할 수 있습니다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.