2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

파이썬 pandas에서 다중 열 집계를 수행하는 방법은?

_____
Q1: pandas에서 다중 열에 대해 집계를 수행하려면 어떻게 하나요?
A1: DataFrame의 `groupby()` 메서드로 그룹화한 뒤 `agg()` 함수를 사용해 여러 열에 대해 각각 다른 집계 함수를 지정할 수 있습니다. 예를 들어:
```python
df.groupby('그룹열').agg({'열1': 'sum', '열2': 'mean'})
```
이렇게 하면 '그룹열' 기준으로 그룹화 후 '열1'은 합계, '열2'는 평균을 계산합니다.

---

Q2: 여러 집계 함수를 한 열에 동시에 적용하려면 어떻게 하나요?
A2: `agg()` 내에 리스트 형태로 함수들을 전달하면 됩니다. 예:
```python
df.groupby('그룹열').agg({'열1': ['sum', 'mean']})
```
이 경우 '열1'에 대해 합계와 평균이 각각 계산됩니다.

---

Q3: 문자열로 직접 집계 함수명 외에 사용자 정의 함수도 적용 가능한가요?
A3: 네, `agg()`에서 람다 함수나 사용자 정의 함수를 직접 전달할 수 있습니다. 예:
```python
df.groupby('그룹열').agg({'열1': lambda x: x.max() - x.min()})
```
'열1' 값의 범위를 계산할 수 있습니다.

---

Q4: 멀티 인덱스 컬럼(계층형 컬럼) 형태로 출력되는데, 이를 단일 레벨 컬럼으로 바꾸려면?
A4: `agg()` 사용 시 컬럼 이름이 튜플로 반환되므로, `reset_index()` 후 `columns` 속성을 재설정하거나 `map`으로 처리합니다. 예:
```python
result.columns = ['_'.join(col).strip() for col in result.columns.values]
```
이렇게 하면 각 집계함수명이 포함된 단일 레벨 컬럼명으로 바꿀 수 있습니다.
---

Q5: 집계 함수 이름을 커스텀 이름으로 지정할 수 있나요?
A5: 네, `agg()` 대신 `named aggregation` 문법을 쓰면 됩니다. 예:
```python
df.groupby('그룹열').agg(
합계_열1=('열1', 'sum'),
평균_열2=('열2', 'mean')
)
```
이렇게 하면 출력 컬럼명이 '합계_열1', '평균_열2'가 됩니다.

---

Q6: 모든 수치형 열에 대해 동일한 집계 함수를 적용하려면?
A6: `groupby()` 후 `agg()`에 단일 함수 이름이나 리스트를 넘기면 됩니다. 예:
```python
df.groupby('그룹열').agg('sum')
또는
df.groupby('그룹열').agg(['sum', 'mean'])
```

---

Q7: 집계 결과를 다시 원래 행 인덱스로 유지하려면?
A7: `groupby()`의 `as_index=False` 옵션을 사용하면 됩니다. 예:
```python
df.groupby('그룹열', as_index=False).agg({'열1': 'sum'})
```
이렇게 하면 그룹 열이 컬럼으로 유지됩니다.

---

요약: pandas에서 다중 열 집계는 `groupby()`와 `agg()`를 결합해서 사용하며, 각 열마다 여러 집계 함수 지정, 사용자정의 함수 적용, 컬럼명 조정 등 다양한 옵션을 활용할 수 있습니다.
Pandas는 데이터 분석을 위한 강력한 라이브러리로, 다중집계를 쉽게 수행할 수 있는 기능을 제공합니다.

`groupby` 메소드를 사용하여 특정 열을 기준으로 데이터를 그룹화한 다음, 여러 열에 대해 집계를 수행할 수 있습니다.

다음은 다중 열 집계를 수행하는 방법에 대한 설명입니다.

기본적인 다중 열 집계 방법 1. DataFrame 생성 : 먼저 pandas 라이브러리를 사용하여 DataFrame을 생성합니다.

```python import pandas as pd data = { 'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Values1': [10, 20, 30, 40, 50, 60], 'Values2': [5, 15, 25, 35, 45, 55] } df = pd.DataFrame(data) ```

2. 그룹화 및 집계 : `groupby` 메소드와 `agg` 메소드를 사용하여 다중 열에 대해 집계를 수행합니다.

```python result = df.groupby('Category').agg({ 'Values1': ['sum', 'mean'], Values1에 대해 합계와 평균 계산 'Values2': ['min', 'max'] Values2에 대해 최소값과 최대값 계산 }) ```

3. 결과 출력 : ```python print(result) ``` 이 코드는 각 카테고리(A, B, C)에 대해 `Values1`의 총합과 평균, `Values2`의 최소값과 최대값을 계산합니다.

예제 다음은 위의 예제를 토대로 실제 코드를 보여주는 완전한 예제입니다.

```python import pandas as pd 데이터 생성 data = { 'Category': ['A', 'A', 'B', 'B', 'C', 'C'], 'Values1': [10, 20, 30, 40, 50, 60], 'Values2': [5, 15, 25, 35, 45, 55] } df = pd.DataFrame(data) 다중 열 집계 result = df.groupby('Category').agg({ 'Values1': ['sum', 'mean'], Values1에 대해 합계와 평균 'Values2': ['min', 'max'] Values2에 대해 최소값과 최대값 }) 결과 출력 print(result) ``` 결과 위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

``` Values1 Values2 sum mean min max Category A 30 15.0 5 15 B 70 35.0 25 35 C 110 55.0 45 55 ``` 추가적인 방법 - 다양한 집계 함수 사용 : 위의 `agg` 메소드에서 사용한 것 외에도, 필요한 다른 집계 함수(예: `count`, `std`, `var`)를 추가하거나 사용할 수 있습니다.

- 사용자 정의 함수 : 필요에 따라 사용자 정의 집계 함수를 만들어 사용할 수 있습니다.

이와 같이 Pandas의 `groupby`와 `agg`를 활용하면 손쉽게 다중 열 집계를 수행할 수 있습니다.

작성자: 김시우 [비회원] | 작성일자: 1년 전 2025-02-10 05:31:27
조회수: 174 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.