Analysis

[데이터마이닝] Lab8-Plotly

ialleejy 2024. 12. 5. 09:43

 

 

 

<1번문제>

 

import seaborn as sns
import pandas as pd
import plotly.express as px

df = sns.load_dataset('titanic')

class_order = ['Third', 'First', 'Second']
df['class'] = pd.Categorical(df['class'], categories=class_order, ordered=True)


grouped = df.groupby(['alive', 'class']).size().reset_index(name='count')

fig = px.bar(grouped, 
             x='alive', 
             y='count', 
             color='class', 
             barmode='group', 
             title='Survival Status by Class')
fig.show()

생존율 분석을 통해 타이타닉 승객들의 구조 과정에서의 불평등을 알 수 있다.
특히 좌석 등급에 따라 생존율에 큰 차이가 존재하며, 이는 당대의 사회적 불평등이 비극적 상황에서도 그대로 반영되었음을 보여준다.
이 분석은 타이타닉 사고의 생존율이 사회적 계층, 구조 우선순위 등의 요인에 크게 영향을 받았다는 것을 시사한다.

<2번문제>

import seaborn as sns
import pandas as pd
import plotly.express as px


df = sns.load_dataset('titanic')


bins = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
labels = ['0', '10', '20', '30', '40', '50', '60', '70', '80']
df['age_group'] = pd.cut(df['age'], bins=bins, labels=labels, right=False)


grouped = df.groupby(['alive', 'age_group']).size().reset_index(name='count')


grouped = grouped.dropna()

fig = px.bar(grouped, 
             x='age_group', 
             y='count', 
             color='alive', 
             barmode='group', 
             title='Survival Status by Age Group')
fig.show()

 

생존율 분석을 나이로 구분하여 분석할 수 있었다
20,30 대 사람들이 생존율이 높으며 나이가 많아질 수록 생존률이 낮다.

<3번문제>

3번 파이차트 그림 레이블 수정

 

왼쪽 alive= false -> alone = False

오른쪽  alive= True ->. alone = True

import seaborn as sns
import plotly.express as px

# Load the Titanic dataset
df = sns.load_dataset('titanic')

# Map the 'alone' column to 'yes' and 'no'
df['alone'] = df['alone'].map({True: 'yes', False: 'no'})

# Group the data by survival status and 'alone'
grouped = df.groupby(['alive', 'alone']).size().reset_index(name='count')
print(grouped)
# Create pie charts for each survival status
for alive_status in grouped['alive'].unique():
    if alive_status=="no":
        alive=Falseㄴ
    else:
        alive=True
    subset = grouped[grouped['alive'] == alive_status]
    fig = px.pie(subset, 
                names='alone', 
                values='count', 
                title=f"Alive = {alive}")
    fig.show()

 

<result>

  alive alone  count
0    no    no    175
1    no   yes    374
2   yes    no    179
3   yes   yes    163

생존율을 혼자왔는지 여럿이서 왔는지를 통해서 분석할 수 있다.
따라서 혼자온 사람의 생존률은 낮음을 알 수 있었으며 생존한 사람 중 여럿이서 온 사람들의 생존율이 높다