1. 히스토그램
- 평균 50, 표준편차 10인 정규분포에서 100개의 난수 생성
- 생성된 데이터를 데이터프레임으로 만들기
- 생성된 데이터의 기술통계량 (평균, 중간값, 표준편차) 계산
- 데이터를 20개 구간으로 나누어 히스토그램 그리기
data = np.random.normal(loc=50, scale=10, size=100)
one = pd.DataFrame(data, columns=['data'])
print(f"평균 : {one.mean()}, 표준편차 : {one.std()}, 중간값 : {one.median()}")
plt.hist(one, bins=20)

2. 시간에 따른 데이터 분석
- 날짜 : 2024-01-01~2024-12-31까지 일별 데이터 생성
- 매출 : 100부터 1000까지의 랜덤 정수 데이터 생성
- 월 : 월의 데이터를 기준으로 연도 데이터 생성
# datetime의 속성정보 month를 활용
dt.month
dates = pd.date_range('2024-01-01', '2024-12-31', freq='D')
sales = np.random.randint(100, 1000, len(dates))
two = pd.DataFrame({'date' : dates, 'sales' : sales})
two['month'] = two['date'].dt.month
monthly_sales = two.groupby('month')['sales'].sum()
monthly_sales.plot(kind='bar')

3. 상관분석
'A': np.random.normal(loc=50, scale=10, size=100),
'B': np.random.normal(loc=60, scale=5, size=100),
'C': np.random.normal(loc=70, scale=8, size=100),
'D': np.random.normal(loc=80, scale=12, size=100)
- 상관계수 매트릭스 만들기
- 매트릭스를 기준으로 히트맵 그리기
three = pd.DataFrame({
'A': np.random.normal(loc=50, scale=10, size=100),
'B': np.random.normal(loc=60, scale=5, size=100),
'C': np.random.normal(loc=70, scale=8, size=100),
'D': np.random.normal(loc=80, scale=12, size=100)
})
corr_matrix = three.corr()
sns.heatmap(corr_matrix, annot=True, fmt='.2f')

4. 시계열 데이터 분석
- 날짜(dates) : '2020-01-01'부터 '2024-12-31'까지 월초를 기준으로 날짜 데이터 생성
- 기온 : 아래의 계산식을 활용하여 기온 데이터 생성
10 + 5 * np.sin(np.linspace(0, 4 * np.pi, len(dates))) + np.random.normal(loc=0, scale=2, size=len(dates))
# datetime의 속성정보 year를 활용
dt.year
- 연도별 기온의 평균 계산
- 연도별 기온에 대한 라인그래프 그리기
dates = pd.date_range('2020-01-01', '2024-12-31', freq='MS')
temp = 10 + 5 * np.sin(np.linspace(0, 4 * np.pi, len(dates))) + np.random.normal(loc=0, scale=2, size=len(dates))
four = pd.DataFrame({'days' : dates, 'temp' : temp})
four['year'] = four['days'].dt.year
annual_temp = four.groupby('year')['temp'].mean()
annual_temp.plot()
