이전 내용은 아래에서 확인 하실 수 있습니다.
3. EDA & Visualization
3-1 스타워즈 케릭터 성별 비율
# 스타워즈 케릭터의 성별(생물학적, 사회적) 비율
print(sw["gender"].value_counts())
print(sw["sex"].value_counts())
# 스타워즈 케릭터의 성별 비율 시각화
f, ax = plt.subplots(1, 2, figsize = [18, 8]) # 그래프 틀 치수
sw["gender"].value_counts().plot.pie(ax = ax[0], autopct = "%1.0f%%", shadow = True) # 파이 차트 그리기
ax[0].set_title("Starwars Gender", size = 18) # 그래프 제목
ax[0].set_ylabel("") # y 라벨 없애기
sns.countplot(data = sw, x = "sex", ax = ax[1]) # 카운터 차트 그리기
ax[1].set_title("Starwars Sex", size = 18) # 그래프 제목
plt.show()
- 남성성과 여성성의 비율이 8:2 이며 남자가 가장 많다는 것을 알 수 있습니다.
3-2 스타워즈 캐릭터 성별에 따른 신장 분포
# 캐릭터 신장 통계치 확인
sw["height"].describe()
# skewness, kurtosis 확인
print("Skewness: %f" % sw["height"].skew())
print("Kurtosis: %f" % sw["height"].kurt())
# 성별이 hermaphroditic 인 캐릭터가 하나 뿐이므로 확률 분포를 구하는 것이 불가능
sw[sw["sex"] == "hermaphroditic"]
# 성별에 따른 스타워즈 캐릭터의 신장 분포 그래프
f, ax = plt.subplots(1, 2, figsize = (16, 5))
# distplot 그리기
sns.distplot(sw[sw["sex"] == "male"]["height"], ax = ax[0])
sns.distplot(sw[sw["sex"] == "female"]["height"], ax = ax[0])
sns.distplot(sw[sw["sex"] == "robot"]["height"], ax = ax[0])
ax[0].legend(["male", "female", "robot"])
# kdeplot 그리기
sns.kdeplot(sw[sw["gender"] == "masculine"]["height"], ax = ax[1])
sns.kdeplot(sw[sw["gender"] == "feminine"]["height"], ax = ax[1])
ax[1].legend(["masculine", "feminine"])
plt.show()
- 남자 케릭터의 키가 여자 케릭터의 키보다 대체적으로 크며, 로봇의 경우 매우 작은 키를 가지고 있다는 것을 알 수 있습니다.
3-3 가장 무거운 캐릭터와 가장 가벼운 캐릭터
# 몸무게가 0인 캐릭터를 빼고 데이터 프레임 생성
sw_mass = sw[sw["mass"] != 0]
sw_mass[sw_mass["mass"] == 0]
print("몸무게가 가장 무거운 캐릭터는:", sw_mass[sw_mass["mass"] == max(sw_mass["mass"])]["name"].values, max(sw_mass["mass"]))
print("몸무게가 가장 가벼운 캐릭터는:", sw_mass[sw_mass["mass"] == min(sw_mass["mass"])]["name"].values, min(sw_mass["mass"]))
3-4 스타워즈 캐릭터의 종족 간 몸무게 비교
# 종족별 평균 몸무게 확인
weight = sw[["species", "mass"]].groupby("species").mean()
weight.head()
# 몸무게가 많은 순으로 상위 10개 종족 시각화
weight["mass"].sort_values(ascending = False).head(10).iplot(kind = "bar")
- Hutt 종족이 압도적으로 몸무게가 많이 나가며, 나머지 종족은 서로 차이는 있지만 그 편차가 크지 않은 것으로 확인 할 수 있습니다.
3-5 스타워즈 캐릭터의 몸무게와 키의 상관관계
# 몸무게 분포 확인
sw["mass"].iplot(kind = "scatter", mode = "markers")
print(max(sw["mass"]))
sw[sw["mass"] == 1358]
- 몸무게가 1358 인 Hutt 종족은 다른 데이터와 값의 차이가 너무 크므로 삭제 후 상관관계를 확인 하도록 하겠습니다.
- 몸무게가 0 인 데이터도 삭제 하도록 하겠습니다.
drop_index = sw[(sw["mass"] == 1358) | (sw["mass"] == 0)].index
sw_drop_mass = sw.drop(drop_index)
print(sw.shape)
print(sw_drop_mass.shape)
# 몸무게-키 상관관계 그래프로 그리기
fig = px.scatter(sw_drop_mass, x = "height", y = "mass", trendline = "ols", template = "plotly_white")
fig.show()
- 몸무게와 키는 양의 상관관계를 가지고 있다고 볼 수 있습니다.
5. Review
- 스타워즈 데이터는 :
-> 총 데이터 개수 957
-> 총 결측치 수 105 = 전체 데이터의 10.97%
-> 스타워즈에 등장하는 등장인물 수 87
-> 스타워즈에 등장하는 종족 수 37
- 스타워즈 캐릭터의 성별 비율은?
-> 남성이고 남성 Gender를 가진 캐릭터가 80% 가량을 차지한다.
- 성별에 따른 캐릭터 신장의 분포는?
-> 남성 캐릭터의 키가 대체로 여성보다 크며, 로봇은 키가 매우 작다.
- 가장 무거운 캐릭터와 가장 가벼운 캐릭터는?
-> ['Ratts Tyerell']의 몸무게가 15.0 (으)로 가장 가볍다
-> ['Jabba Desilijic Tiure']의 몸무게가 1358.0 (으)로 가장 가볍다
- 스타워즈 캐릭터의 키와 몸무게는 상관관계를 가질까?
-> 그렇다. 인간과 다른 행성에 사는 종족이지만, 키와 몸무게는 대체로 비례 관계를 보인다.
감사합니다.
'Data Analysis > 기타 데이터' 카테고리의 다른 글
[기타 데이터] LA Lakers 경기 데이터 분석 3 (EDA / 시각화 / 리뷰) (0) | 2021.10.12 |
---|---|
[기타 데이터] LA Lakers 경기 데이터 분석 2 (데이터 전처리) (0) | 2021.10.08 |
[기타 데이터] LA Lakers 경기 데이터 분석 1 (데이터 확인 / 질문) (0) | 2021.10.08 |
[기타 데이터] Starwars 케릭터 분석 2 (데이터 전처리) (0) | 2021.10.07 |
[기타 데이터] Starwars 케릭터 분석 1 (데이터 확인 / 질문) (0) | 2021.10.05 |