함께 실습하기(표)

In [1]:
import pandas as pd

s1 = pd.Series({ '김': 100, '나': 141, '박': 129, '이': 124 })
s1.name = '수학'
print(s1)
print('------------')

s2 = pd.Series({ '김': 30, '나': 5, '박': 1239, '이': 141 })
# name을 안지어주면 어떻게 될까요?
print(s2)
print('------------')

s3 = pd.Series([8, 3, 12, 2]) # index를 지정 안하면 어떻게 될까요?
s3.name = '국어'
print(s3)
print('------------')

s4 = pd.Series([30, 5, 1239, 141])
# name, index 모두 지정 안하면 어떻게 될까요?
print(s4)
김    100
나    141
박    129
이    124
Name: 수학, dtype: int64
------------
김      30
나       5
박    1239
이     141
dtype: int64
------------
0     8
1     3
2    12
3     2
Name: 국어, dtype: int64
------------
0      30
1       5
2    1239
3     141
dtype: int64
In [4]:
df = pd.DataFrame({ '출생지': ['한국','미국'], '나이': [20,30] })
# 열 추가
df['성별'] = ['여', '남']

# 행 추가
df.loc[2] = ['일본', 25, '여']

df
Out[4]:
출생지 나이 성별
0 한국 20
1 미국 30
2 일본 25
In [6]:
df2 = pd.DataFrame(s1)

df2['영어'] = s2
df2['미술'] = [1, 2, 3, 4]

df2
Out[6]:
수학 영어 미술
100 30 1
141 5 2
129 1239 3
124 141 4

미션

영어 점수가 100점 이상인 학생만 뽑아 그들의 수학점수 평균을 보여달라

In [7]:
print(df2.loc[df2['영어'] >= 100, '수학'].mean())
126.5

numpy 연습하기


In [8]:
import numpy as np

np.array([1, 3, 5])

np.array([[1,2,3], [4,5,6]])
Out[8]:
array([[1, 2, 3],
       [4, 5, 6]])

미션(타이타닉 데이터 불러오기)

In [9]:
import pandas as pd
train = pd.read_csv('data/train.csv')

train.head()
Out[9]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S
In [12]:
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()


sns.relplot(data=train, x='Age', y='Survived', hue='Sex', aspect=3)
Out[12]:
<seaborn.axisgrid.FacetGrid at 0x1b07846b4c8>
In [13]:
sns.catplot(data=train, x='Pclass', y='Fare', aspect=4)
# 차이를 직접 확인해보세요
sns.catplot(data=train, x='Pclass', y='Fare', jitter=False, aspect=4)
sns.catplot(data=train, x='Pclass', y='Fare', aspect=4, hue='Sex')
Out[13]:
<seaborn.axisgrid.FacetGrid at 0x1b079d45648>
In [14]:
sns.pairplot(data=train, hue='Sex',
             x_vars=['Pclass', 'Age', 'Fare'],
             y_vars=['Survived', 'Age', 'Fare'], height=3)
Out[14]:
<seaborn.axisgrid.PairGrid at 0x1b079e78d88>
In [15]:
sns.catplot(data=train, x='Pclass', y='Fare', kind='box')
sns.catplot(data=train, x='Pclass', y='Fare', kind='box', hue='Sex')
Out[15]:
<seaborn.axisgrid.FacetGrid at 0x1b079e28a48>
In [ ]: