데이터를 대표하는 값을 나타내는 척도
데이터 총합 / 데이터 개수
데이터가 평균을 기준으로 얼마나 퍼져있는지
데이터가 공간적으로 어떻게 퍼져있는지
import pandas as pd
customers = pd.DataFrame({
'customer_id': [1, 2, 3]
'name': ['Alice', 'Bob', 'Charlie']
})
orders = pd.DataFrame({
'order_id': [101, 102, 103],
'customer_id': [1, 2, 4],
'product': ['Laptop', 'Tablet', 'Smartphone']
})
# Inner Join: 공통된 customer_id로만 합침
result_inner = pd.merge(customers, orders, on='customer_id', how='inner')
# Left Join: customers의 모든 데이터 값 유지
result_left = pd.merge(customers, orders, on='customer_id', how='left')
import pandas as pd
sales_jan = pd.DataFrame({
'month': ['January', 'January', 'January']
'product': ['Laptop', 'Tablet', 'Smartphone'],
'sales': [100, 150, 200]
})
sales_feb = pd.DataFrame({
'month': ['February', 'February', 'February']
'product': ['Laptop', 'Tablet', 'Smartphone'],
'sales': [120, 160, 220]
})
sales_combined = pd.concat([sales_jan, sales_feb], axis=0)
import seaborn as sns
import matplotlib.pyplot as plt
scores = [56, 67, 45, 89, 90, 77, 68, 88, 92, 76, 58, 70, 73, 85, 62]
sns.histplot(scores, bins=5, kde=True, color='blue', edgecolor='black')
plt.title('학생 점수 분포')
plt.xlabel('점수 구간')
plt.ylabel('학생 수')
plt.show()
import matplotlib.pyplot as plt
department = ['HR', 'IT', 'Finance']
salaries = [
[3000, 3200, 3100, 2800, 2700],
[4500, 4600, 4700, 4400, 4800],
[5200, 5300, 5000, 4900, 5400]
]
plt.boxplot(salaries, labels=department)
plt.title('부서별 월급 분포')
plt.ylabel('월급')
plt.show()
EDA는 데이터를 시각적으로 분석하여 패턴, 관계, 이상치, 분포 등을 탐구하는 과정
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
data = pd.DataFrame({
'Ad_Spend': [100, 200, 300, 400, 500],
'Sales': [10, 15, 20, 25, 30]
})
sns.scatterplot(x='Ad_Spend', y='Sales', data=data)
plt.title('광고비와 판매량 간의 관계)
plt.ylabel('광고비 (단위: $)')
plt.ylabel('판매량 (단위: 개)')
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
data = pd.DataFrame({
'Math': [90, 80, 70, 60, 85],
'English': [85, 75, 65, 55, 10],
'Science': [88, 78, 68, 58, 23]
})
correlation = data.corr() # 상관계수 계산
sns.heatmap(correlation, annot=True, cmap='coolwarm')
plt.title('과목 간 상관관계 히트맵')
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
data = pd.DataFrame({
'Area': [50, 60, 70, 80, 90],
'Rooms': [1, 2, 3, 4, 5],
'Price': [200, 250, 300, 350, 400]
})
sns.pairplot(data)
plt.title('주택 데이터 변수 간 관계', y=1.02)
plt.show()