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

파이썬 pandas에서 시계열 데이터를 주 단위로 집계하는 방법은?

_____
Q1: 파이썬 pandas에서 시계열 데이터를 주 단위로 집계하려면 어떻게 하나요?
A1: pandas의 `resample()` 메서드를 사용하면 시계열 데이터를 주 단위(week)로 집계할 수 있습니다. 예를 들어, 데이터프레임 `df`에서 날짜가 인덱스일 때, 주 단위 합계를 구하려면 다음과 같이 작성합니다.
```python
df.resample('W').sum()
```
여기서 `'W'`는 주 단위를 의미합니다.

---

Q2: `resample('W')`에서 주의 시작 요일을 지정할 수 있나요?
A2: 네, 가능합니다. 기본적으로 `W`는 일요일로 끝나는 주를 의미합니다. 시작 요일을 변경하려면 `'W-MON'`, `'W-TUE'` 등과 같이 요일 코드를 붙여 사용합니다. 예를 들어, 월요일을 기준으로 주를 집계하려면 이렇게 씁니다.
```python
df.resample('W-MON').sum()
```

---

Q3: 인덱스가 날짜가 아닌 일반 열일 경우는 어떻게 주 단위로 집계하나요?
A3: 먼저 해당 날짜 열을 `DatetimeIndex` 또는 `datetime` 타입으로 변환 후 인덱스로 설정해야 합니다.
```python
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
df.resample('W').sum()
```

---

Q4: 주 단위 집계 시, 합계 이외에 평균이나 최대값도 구할 수 있나요?
A4: 네 가능합니다. `resample()` 후 `sum()`, `mean()`, `max()` 등의 집계 함수를 사용할 수 있습니다. 예:
```python
df.resample('W').mean()
df.resample('W').max()
```

---

Q5: 여러 집계 함수를 동시에 사용하는 방법이 있나요?
A5: `agg()` 메서드를 사용해 여러 집계 함수를 동시에 적용할 수 있습니다.
```python
df.resample('W').agg(['sum', 'mean', 'max'])
```

---
Q6: 특정 열만 주 단위로 집계하려면 어떻게 해야 하나요?
A6: 열을 선택한 후 `resample()`을 적용합니다. 예:
```python
df['value'].resample('W').sum()
```

---

Q7: 주 단위 집계 시, 빈 주(데이터가 없는 주)도 포함되나요?
A7: `resample()`은 전체 기간에 대해 집계를 수행하므로 기간 내 빈 주도 인덱스로 포함되며, 이 경우 값은 NaN 또는 0일 수 있습니다. 필요시 `fillna(0)`로 처리 가능합니다.
```python
weekly = df.resample('W').sum().fillna(0)
```

---

Q8: 데이터가 월요일부터 시작하는 주인지 확인하는 방법이 있나요?
A8: `resample('W-MON')`으로 설정하면 인덱스가 월요일로 끝나는 주 기준이 되며, 출력 인덱스를 확인해 월요일 기준인지 검증할 수 있습니다.

---

Q9: groupby와 resample 중 언제 어떤 것을 쓰나요?
A9: `resample()`은 인덱스가 `DatetimeIndex`일 때 시간 기반 리샘플링에 특화되어 있습니다. 날짜 데이터를 기반으로 주 단위 집계할 때는 주로 `resample()`을 사용하고, 날짜가 컬럼이고 그룹별 집계가 필요하면 `groupby()`를 사용합니다.

---

요약
```python
import pandas as pd

예시 데이터 생성
dates = pd.date_range('2023-01-01', periods=30)
df = pd.DataFrame({'value': range(30)}, index=dates)

주 단위 합계 (일요일 기준 종료 주)
weekly_sum = df.resample('W').sum()

주 단위 합계 (월요일 기준 종료 주)
weekly_sum_mon = df.resample('W-MON').sum()

print(weekly_sum)
print(weekly_sum_mon)
```

이처럼 `resample('W')`에서 'W' 뒤에 요일 코드를 붙여 원하는 주 기준을 설정하고, sum(), mean(), agg() 등을 사용해 주 단위 집계가 가능합니다.
파이썬의 Pandas 라이브러리를 사용하여 시계열 데이터를 주 단위로 집계하는 방법에 대해 설명하겠습니다.

여기서는 주간 집계를 위해 `resample` 메서드를 사용할 수 있습니다.

이 메서드는 시계열 데이터를 특정 주기(예: 주, 월, 연도 등)로 재조정하는 데 유용합니다.

기본 단계 1. Pandas 라이브러리 설치 : Pandas를 설치하지 않았다면 먼저 설치합니다.

```bash pip install pandas ```

2. 데이터 준비 : 시계열 데이터를 포함하는 DataFrame을 준비합니다.



3. `resample` 메서드 사용 : 주 단위로 데이터를 집계합니다.

예제 코드 ```python import pandas as pd 샘플 시계열 데이터 생성 data = { 'date': pd.date_range(start='2023-01-01', periods=10, freq='D'), 'value': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] } DataFrame 생성 df = pd.DataFrame(data) 'date' 컬럼을 인덱스로 설정 df.set_index('date', inplace=True) 주 단위로 집계 (합계) weekly_data = df.resample('W').sum() 결과 출력 print(weekly_data) ``` 코드 설명 1. 데이터 생성 : 2023년 1월 1일부터 시작하는 일일(date) 데이터를 생성하고 값을(value) 추가했습니다.



2. 인덱스 설정 : 'date' 컬럼을 인덱스로 변환하여 시계열 데이터로 만듭니다.



3. 주 단위 집계 : `resample('W')`를 사용하여 데이터를 주 단위로 집계합니다.

`'W'`는 주 단위를 의미하며, `.sum()`을 통해 각 주마다의 합계를 구합니다.

다른 집계 함수를 사용하여 평균(mean), 최대(max), 최소(min) 등으로 집계할 수도 있습니다.

결과 위 코드를 실행하면 각 주의 합계가 포함된 새로운 DataFrame이 출력됩니다.

예를 들어, 1주 차, 2주 차 동안의 데이터가 각각 어떻게 집계되었는지를 확인할 수 있습니다.

다양한 집계 방법 - `mean()`: 평균 계산 - `max()`: 최대값 계산 - `min()`: 최소값 계산 - `count()`: 데이터 개수 계산 이와 같은 방법들을 사용하여 원하는 방식으로 시계열 데이터를 주 단위로 집계할 수 있습니다.

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