ex) 학생들의 시험 점수에서 평균 점수, 중간 점수를 계산
#데이터 분석에서 자주 사용되는 라이브러리 import pandas as pd #다양한 계산을 빠르게 수행하게 돕는 라이브러리 import numpy as np #시각화 라이브러리 import matplotlib.pyplot as plt #시각화 라이브러리2 import seaborn as sns
파이썬 실습
data = [85, 90, 78, 92, 88, 76, 95, 89, 84, 91]mean = np.mean(data) median = np.median(data) print(f"평균: {mean}, 중앙값: {median}") # 평균: 86.8, 중앙값: 88.5
범위(R) = 최대값 - 최소값
ex) 다섯 명의 학생이 받은 시험 점수가 60, 70, 80, 90, 100이라면
ex) 매출 데이터의 변이를 분석하여 비즈니스의 안정성을 평가
# 분산 구하기
variance = np.var(data)
# 표준편차 구하기
std_dev = np.std(data)
# 범위 구하기
data_range = np.max(data) - np.min(data)
print(f"분산: {variance}, 표준편차: {std_dev}, 범위:{data_range}")
# 분산: 33.36, 표준편차: 5.775811631277461, 범위:19
ex) 시험 점수의 분포를 히스토그램과 상자 그림으로 표현
plt.hist(data, bins=5)
plt.title('histogram')
plt.show()
plt.boxplot(data)
plt.title('boxplot')
plt.show()


ex) 고객 만족도 설문에서 만족/불만족의 빈도 분석
satisfaction = ['satisfaction', 'satisfaction', 'dissatisfaction',
'satisfaction', 'dissatisfaction', 'satisfaction', 'satisfaction',
'dissatisfaction', 'satisfaction', 'dissatisfaction']
satisfaction_counts = pd.Series(satisfaction).value_counts()
satisfaction_counts.plot(kind='bar')
plt.title('satisfaction distribution')
plt.show()


study_hours = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
exam_scores = [95, 90, 85, 80, 75, 70, 65, 60, 55, 50]
#상관 계수 구하기
correlation = np.corrcoef(study_hours, exam_scores)[0, 1]
#0행 1열만 가져옴
print(f"공부 시간과 시험 점수 간의 상관계수: {correlation}")
plt.scatter(study_hours, exam_scores)
plt.show()

ex) 아이스크림 판매량과 익사 사고 수 간의 상관관계는 높지만, 인과관계는 아님
ex) 여러 마케팅 채널의 광고비와 매출 간의 분석
data = {'TV': [230.1, 44.5, 17.2, 151.5, 180.8],
'Radio': [37.8, 39.3, 45.9, 41.3, 10.8],
'Newspaper': [69.2, 45.1, 69.3, 58.5, 58.4],
'Sales': [22.1, 10.4, 9.3, 18.5, 12.9]}
df = pd.DataFrame(data)
sns.pairplot(df) # 산점도를 각각의 경우의 수로 그려줌
plt.show() # 대각선은 자기 자신의 상관관계는 1이기 때문에
# 의미없음으로 히스토그램으로 표현

df.corr() # 상관계수를 구해주는 함수

# heatmap까지 그린다면
sns.heatmap(df.corr()) #상관관계를 색깔로 보여줌(살 색일 수록 높은 상관관계)
