Pandas 변환을 사용하여 GroupBy DataFrame에 열 추가
Pandas에서 그룹별 작업을 수행할 때 새 열을 결과 데이터프레임. 이를 수행하는 한 가지 방법은 예제에서 설명한 대로 .map() 함수를 사용하는 것입니다. 그러나 대안적이고 보다 간단한 접근 방식은 .transform() 함수를 사용하는 것입니다.
.transform()을 사용하면 데이터 프레임의 각 그룹에 함수를 적용하고 결과와 함께 시리즈를 반환할 수 있습니다. 반환된 시리즈는 원래 데이터 프레임에 맞춰 정렬된 인덱스를 갖습니다.
설명을 위해 제공된 데이터 프레임부터 시작하겠습니다.
df = pd.DataFrame({'c': [1, 1, 1, 2, 2, 2, 2], 'type': ['m', 'n', 'o', 'm', 'm', 'n', 'n']})
우리의 목표는 각 c에 대한 유형 값을 계산하고 c 크기의 열을 추가하는 것입니다.
g = df.groupby('c')['type'].value_counts().reset_index(name='t')
이 코드는 각 그룹의 값을 계산하고 t라는 새 열을 생성합니다.
.transform()을 사용하여 크기 열을 추가하려면 다음을 수행합니다. 다음을 수행하십시오:
g['size'] = df.groupby('c')['type'].transform('size')
.transform('size') 각 그룹에 크기 함수를 적용하여 각 그룹의 크기를 반환합니다. 결과 시리즈는 원본 데이터프레임의 인덱스와 정렬되어 이를 g에 새 열로 추가할 수 있습니다.
출력은 size:
c type t size 0 1 m 1 3 1 1 n 1 3 2 1 o 1 3 3 2 m 2 4 4 2 n 2 4
.transform()을 사용하면 그룹별 집계에서 원래 데이터 프레임에 열을 다시 추가하는 더 간결하고 간단한 방법을 제공합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3