-
[2월 3주차-2/20(2)]미세먼지와 날씨 데이터 분석 및 시각화Why Not SW CAMP 5기/수업 기록 2025. 2. 20. 17:55
미세먼지는 인간의 건강에 중요한 영향을 미치는 환경 요인 중 하나입니다. 본 포스트에서는 미세먼지(PM10, PM2.5)와 날씨(온도, 습도, 강수량, 풍속) 데이터를 결합하여 분석하고, 상관관계를 파악하는 과정을 소개하겠습니다.
1. 데이터 불러오기 및 전처리
먼저, 미세먼지 데이터와 날씨 데이터를 불러옵니다.
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np dust = pd.read_excel('data/dust.xlsx') dust.columns = ['date', 'so2', 'co', 'o3', 'no2', 'PM10', 'PM2.5']
날짜 데이터 변환
미세먼지 데이터의 날짜 정보를 연-월-일 형식으로 변환하고, 연도, 월, 일 칼럼을 추가합니다.
dust['date'] = dust['date'].str[:11] dust['date'] = pd.to_datetime(dust['date']) dust['year'] = dust['date'].dt.year dust['month'] = dust['date'].dt.month dust['day'] = dust['date'].dt.day
결측값 처리
dust = dust.fillna(method='pad') dust.fillna(20, inplace=True)
2. 날씨 데이터 불러오기 및 전처리
날씨 데이터를 불러와서 필요 없는 칼럼을 제거하고, 날짜 형식을 통일합니다.
weather = pd.read_excel('data/weather.xlsx') weather = weather.drop(['지점', '지점명'], axis=1) weather.columns = ['date', 'temp', 'wind', 'rain', 'humid'] weather['date'] = pd.to_datetime(weather['date']).dt.date weather['date'] = weather['date'].astype('datetime64[ns]') weather['rain'] = weather['rain'].replace(0, 0.01) # 0을 0.01로 대체
3. 데이터 병합
미세먼지 데이터와 날씨 데이터를 병합합니다.
dust = dust.drop(index=743) df = pd.merge(dust, weather, left_index=True, right_index=True, how='inner')
4. 데이터 분석 및 시각화
1) 변수 간 상관관계 분석
corr = df.corr() print(corr['PM10'].sort_values(ascending=False))
2) 히스토그램을 통한 데이터 분포 확인
df.hist(bins=50, figsize=(20,15)) plt.show()
3) 일별 미세먼지 평균 현황
plt.figure(figsize=(15,10)) sns.barplot(x='day', y='PM10', data=df, palette='Set1') plt.show()
4) 변수 간 상관 관계 시각화 (히트맵)
plt.figure(figsize=(15,12)) sns.heatmap(data=corr, annot=True, fmt='.2f', cmap='hot') plt.show()
5) 온도와 미세먼지의 관계 분석
plt.figure(figsize=(15,12)) x = df['temp'] y = df['PM10'] plt.plot(x, y, marker='o', linestyle='none', alpha=0.5) plt.title('온도와 미세먼지') plt.show()
5. 결론
- 미세먼지 농도와 다양한 환경 요인 간의 상관관계를 분석하였습니다.
- 온도가 상승할 때 미세먼지 농도가 낮아지는 경향이 있음을 확인할 수 있습니다.
- 강수량이 많을수록 미세먼지가 감소하는 패턴이 나타납니다.
- 풍속이 강할수록 미세먼지가 희석되는 경향을 보였습니다.
앞으로 추가적인 데이터를 확보하여 더욱 심층적인 분석을 수행할 계획입니다. 해당 분석 결과를 바탕으로 미세먼지 저감 정책 수립에 도움이 되었으면 합니다!
'Why Not SW CAMP 5기 > 수업 기록' 카테고리의 다른 글
[2월 3주차-2/21]😊 병원 노쇼 환자 분석 🏥 (2) 2025.02.24 [2월 3주차-2/20(3)]대한민국 행복 지도 데이터 분석 (0) 2025.02.20 [2월 3주차-2/20(1)]다나와 무선청소기 데이터 분석 및 시각화 🧹📊 (0) 2025.02.20 [2월 3주차-2/19]왜 우리 동네에는 스타벅스가 없을까? (0) 2025.02.20 [2월 3주차-2/18(4)]📊 월별 외국인 관광객 데이터 전처리 및 통합 분석 (0) 2025.02.19