
๋ํ์ด๋ ํ์ด์ฌ์์ ์ ํ ๋์ ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์๋๋ก ์ง์ํ๋ ๋ํ์ ์ธ ํจํค์ง

ndarry Numpy์ N์ฐจ์ ๋ฐฐ์ด ๊ฐ์ฒด
1์ฐจ์ ๋ฐฐ์ด, 2์ฐจ์ ๋ฐฐ์ด, 3์ฐจ์ ๋ฐฐ์ด ... ๋ค์ฐจ์ ๋ฐฐ์ด์ ์ฝ๊ฒ ์์ฑํ๊ณ ๋ค์ํ ์ฐ์ฐ์ ์ํํ ์ ์์.
#ndarray
array1 = np.array([1,2,3])
print('array1 type:', type(array1))
print('array1 array ํํ:',array1.shape)
array2 = np.array([[1,2,3], [2,3,4]])
print('array2 type:', type(array2))
print('array2 array ํํ:', array2.shape)
array3 = np.array([[1,2,3]])
print('array3 type:', type(array3))
print('array3 array ํํ:', array3.shape)
ndarray๋ด์ ๋ฐ์ดํฐ๊ฐ์ ์ซ์ ๊ฐ, ๋ฌธ์์ด ๊ฐ, ๋ถ ๊ฐ ๋ชจ๋ ๊ฐ๋ฅ
ndarray ๋ด์ ๋ฐ์ดํฐ ํ์
์ ํน์ฑ์ ๊ฐ์ ๋ฐ์ดํฐ ํ์
๋ง ๊ฐ๋ฅ
ํ์
๋ณํ์ astype() ๋ฉ์๋๋ฅผ ์ด์ฉํด ๊ฐ๋ฅ
reshape()ndarray๋ฅผ ํน์ ์ฐจ์ ๋ฐ ํฌ๊ธฐ๋ก ๋ณํํ๋ค. ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ์ด์ง ํ/์ด์ ๋ง์ถฐ์ง array๋ฅผ ๋ฐํํ๋ค. ๋จ, ๋๋์ด๋จ์ด์ง์ง ์์ ๊ฒฝ์ฐ Error๊ฐ ๋ฐ์ํ๋ค.
#reshape
array1 = np.arange(10)
print('array1: \n', array1)
array2 = array1.reshape(2, 5)
print('array2: \n', array2)
array3 = array1.reshape(5, 2)
print('array3: \n', array3)
์ํ๋ ์์น์ ์ธ๋ฑ์ค ๊ฐ์ ์ง์ ํ๋ฉด ํด๋น ์์น์ ๋ฐ์ดํฐ๊ฐ ๋ฐํ
value = array1[2]
์ฐ์๋ ์ธ๋ฑ์ค์์ ndarray๋ฅผ ์ถ์ถํ๋ ๋ฐฉ์. ์์์ธ๋ฑ์ค์์ ์ข ๋ฃ ์ธ๋ฑ์ค-1 ์์น์ ์๋ ๋ฐ์ดํฐ์ ndarray๋ฅผ ๋ฐํ
์ผ์ ํ ์ธ๋ฑ์ฑ ์งํฉ์ ๋ฆฌ์คํธ ๋๋ ndarray ํํ๋ก ์ง์ ํด ํด๋น ์์น์ ์๋ ๋ฐ์ดํฐ์ ndarray๋ฅผ ๋ฐํ
#fancy indexing
array1d = np.arange(start=1, stop=10)
array2d = array1d.reshape(3,3)
array3 = array2d[[0,1], 2]
print('array2d[[0,1],2] => ', array3.tolist())
array4 = array2d[[0,1], 0:2]
print('array2d[[0,1], 0:2] => ', array4.tolist())
array3 = array2d[[0,1]]
print('array2d[[0,1]] => ', array5.tolist())
[Output]
array2d[[0,1], 2] => [3, 6]
array2d[[0,1], 0:2] => [[1, 2], [4, 5]]
array2d[[0,1], 2] => [[1, 2, 3], [4, 5, 6]]
-๋ถ๋ฆฐ ์ธ๋ฑ์ฑ
ํน์ ์กฐ๊ฑด์ ํด๋นํ๋ ์ฌ๋ถ์ธ True/False ๊ฐ ์ธ๋ฑ์ฑ ์งํฉ์ ๊ธฐ๋ฐ์ผ๋ก True์ ํด๋นํ๋ ์ธ๋ฑ์ค ์์น์ ์๋ ๋ฐ์ดํฐ์ ndarray๋ฅผ ๋ฐํ
#boolean indexing
array1d = np.arange(start=1, stop=10)
# [ ] ์์ array1d > 5 Boolean indexing์ ์ ์ฉ
array3 = array1d[array1d > 5]
print('array1d > 5 ๋ถ๋ฆฐ ์ธ๋ฑ์ฑ ๊ฒฐ๊ณผ ๊ฐ:', array3)
array1d > 5 ๋ถ๋ฆฐ ์ธ๋ฑ์ฑ ๊ฒฐ๊ณผ ๊ฐ : [6 7 8 9]
np.sort( )๋ํ์ด์์ sort( )๋ฅผ ํธ์ถํ๋ ๋ฐฉ์
์ ํ๋ ฌ์ ๊ทธ๋๋ก ์ ์งํ ์ฑ ์ ํ๋ ฌ์ ์ ๋ ฌ๋ ํ๋ ฌ์ ๋ฐํ (ndarry ์๋ณธ ์ ์ง)
ndarray.sort( )ํ๋ ฌ ์์ฒด์์ sort( )๋ฅผ ํธ์ถํ๋ ๋ฐฉ์
์ ํ๋ ฌ ์์ฒด๋ฅผ ์ ๋ ฌํ ์ํ๋ก ๋ณํ (๋ฐํ๊ฐ None/ ndarray ์๋ณธ ๋์ฒด)
np.argsort( )์ ๋ ฌ ํ๋ ฌ์ ์๋ณธ ํ๋ ฌ ์ธ๋ฑ์ค๋ฅผ ndarray ํ์ผ๋ก ๋ณํ
#argsort
org_array = np.array([3, 1, 9, 5])
sort_indices = np.argsort(org_array)
print(type(sort_indices))
print('ํ๋ ฌ ์ ๋ ฌ ์ ์๋ณธ ํ๋ ฌ์ ์ธ๋ฑ์ค:', sort_indices)
<class 'numpy.ndarray'>
ํ๋ ฌ ์ ๋ ฌ ์ ์๋ณธ ํ๋ ฌ์ ์ธ๋ฑ์ค : [1 0 3 2]
๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
[::-1]์ ์ ์ฉ -> np.argsort(org_array)[::-1]
argsort()๋ ๋ํ์ด์์ ๋งค์ฐ ํ์ฉ๋๊ฐ ๋๋ค ๋ฐํ๋ ์ธ๋ฑ์ค๋ฅผ ํฌ์ ์ธ๋ฑ์ค๋ก ์ ์ฉํด ์ถ์ถํ ์ ์์ด ๋ฐ์ดํฐ ์ถ์ถ์์ ๋ง์ด ์ฌ์ฉ๋๋ค.
ํ๋ค์ค๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํด ์กด์ฌํ๋ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํ๋ค์ค๋ ํ์ด์ฌ์ ๋ฆฌ์คํธ, ์ปฌ๋ ์
, ๋ํ์ด ๋ฑ์ ๋ด๋ถ ๋ฐ์ดํฐ ๋ฟ๋ง ์๋๋ผ CSV ๋ฑ์ ํ์ผ์ ์ฝ๊ฒ DataFrame์ผ๋ก ๋ณ๊ฒฝํด ๋ฐ์ดํฐ ๊ฐ๊ณต/๋ถ์์ ํธ๋ฆฌํ๊ฒ ์ํ
DataFrame์ ์ฌ๋ฌ๊ฐ์ ํ๊ณผ ์ด๋ก ์ด๋ค์ง 2์ฐจ์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ฒด

Series ์นผ๋ผ์ด ํ๋๋ฟ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ฒด
DataFrame ์นผ๋ผ์ด ์ฌ๋ฌ ๊ฐ์ธ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ฒด (์ฌ๋ฌ ๊ฐ์ Series)
Import pandas pd
pd.read_csv( )csv ํ์ผ ํฌ๋งท์ ์ํ API
๋ํดํธ ํ๋ ๊ตฌ๋ถ ๋ฌธ์ : ,
Sep ์ธ์๋ฅผ ํ์ฉ (sep='\t')
DataFrame.head( )DataFrame ๋งจ ์์ ์๋ N๊ฐ row ๋ฐํ (default : 5)
DataFrame.info( )titanic_df.info()
[Output]
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PassengerId 891 non-null int64
1 Survived 891 non-null int64
2 Pclass 891 non-null int64
3 Name 891 non-null object
4 Sex 891 non-null object
5 Age 714 non-null float64
6 SibSp 891 non-null int64
7 Parch 891 non-null int64
8 Ticket 891 non-null object
9 Fare 891 non-null float64
10 Cabin 204 non-null object
11 Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB
DataFrame.describe( )์ซ์ํ ์นผ๋ผ์ ๋ํ ๊ฐ๋ต์ ์ธ ๋ฐ์ดํฐ ๋ถํฌ๋
(non-null ๊ฑด์, mean, std, min, max, quantile)
titanic_df.describe()

DataFrame[โ์ด].value_counts( )ํด๋น ์นผ๋ผ๊ฐ์ ์ ํ๊ณผ ๊ฑด์ ํ์ธ
๋ง์ ๊ฑด์ ์์๋ก ์ ๋ ฌ๋์ด ๊ฐ์ ๋ฐํ
ํด๋น ์นผ๋ผ์ ํด๋น๋๋ Series ๊ฐ์ฒด๋ฅผ ๋ฐํ (๋ฐ๋ผ์ type๊ฐ Series์ด๋ค)
value_counts = titanic_df['Pclass'].value_counts()
์์ฐจ ๊ฐ๊ณผ ๊ฐ์ ์๋ฏธ์๋ ์๋ณ์๋ง ํ ๋นํ๋ ๊ฒ์ด ์๋ ๊ณ ์ ์ฑ์ด ๋ณด์ฅ๋๋ค๋ฉด ์๋ฏธ ์๋ ๋ฐ์ดํฐ ๊ฐ ํ ๋น๋ ๊ฐ๋ฅ (๋ชจ๋ ์ธ๋ฑ์ค์ ๊ณ ์ ์ฑ ๋ณด์ฅ)
๊ธฐ๋ณธ์ ์ผ๋ก ๋ํ์ด ndarray๋ฅผ ์
๋ ฅ์ธ์๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋น๋ฒ
DataFrame๊ณผ ๋ํ์ด ndarray ์ํธ ๊ฐ์ ๋ณํ์ ๋งค์ฐ ๋น๋ฒํ๊ฒ ๋ฐ์
(1) ndarray -> DF
import numpy as np
col_name1 = ['col1']
list1= [1,2,3]
array1 = np.array(list1)
print('array1 shape: ', array1.shape)
#๋ฆฌ์คํธ๋ฅผ ์ด์ฉํด DataFrame ์์ฑ
df_list1= pd.DataFrame(list1, columns = col_name1)
print('1์ฐจ์ ๋ฆฌ์คํธ๋ก ๋ง๋ DataFrame:\n', df_list1)
#๋ํ์ด ndarray๋ฅผ ์ด์ฉํด DataFrame ์์ฑ
df_array1 = pd.DataFrame(array1, columns = col_name1)
print('1์ฐจ์ ndarray๋ก ๋ง๋ DataFrame:\n', df_array1)
(2) list -> DF
#3๊ฐ์ ์นผ๋ผ๋ช
์ด ํ์ํจ
col_name2 = ['col1', 'col2', 'col3']
#2ํx3์ด ํํ์ ๋ฆฌ์คํธ์ ndarray ์์ฑํ ๋ค ์ด๋ฅผ DataFrame๋ก ๋ณํ
list2= [[1,2,3],
[11, 12, 13]]
array2= np.array(list2)
print('array2 shape:', array2.shape)
df_list2 = pd.DataFrame(list2, columns=col_name2)
print('2์ฐจ์ ๋ฆฌ์คํธ๋ก ๋ง๋ DataFrame:\n', df_list2)
df_array2 = pd.DataFrame(array2, columns=col_name2)
print('2์ฐจ์ ndarray๋ก ๋ง๋ DataFrame:\n', df_array2)
(3) dictionary -> DF
#Key๋ ๋ฌธ์์ด ์นผ๋ผ๋ฉฐ์ผ๋ก ๋งคํ, Value๋ ๋ฆฌ์คํธํ(๋๋ ndarray) ์นผ๋ผ ๋ฐ์ดํฐ๋ก ๋งคํ
dict= {'col1':[1,11], 'col2':[2,22], 'col3':[3,33]}
df_dict = pd.DataFrame(dict)
print('๋์
๋๋ฆฌ๋ก ๋ง๋ DataFrame:\n', df_dict)
DataFrame[โ์ดโ] = ์ซ์
DataFrame[โ์ด'] = ์์
๊ธฐ์กด ์นผ๋ผ๊ฐ๋ ์ฝ๊ฒ ์ผ๊ด์ ์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์
titanic_df['Age_by_10'] = titanic_df['Age_by_10']+100
DataFrame.drop( )Labels dropํ ์นผ๋ผ์ด๋ ํ ์ง์ ([ ] ์์ ๋ฃ์ด์ ์
๋ ฅ)
Axis ํน์ ์นผ๋ผ ๋๋ ํ drop (axis=0: row, axis=1: column)
inplace dropํ ๋ฐ์ดํฐํ๋ ์์ ์๋ณธ์ผ๋ก ์ ์ฅ (default: False)
inplace True ์ผ ๊ฒฝ์ฐ ๋ฐํ๊ฐ None/ ์๋ณธ์ด ์๋ก์ด DF๋ก ๋์ฒด๋จ.
drop() ๋ฉ์๋๊ฐ ์ฌ์ฉ๋๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ๋ ์นผ๋ผ์ ๋๋กญํ๋ ๊ฒฝ์ฐ
Index ๊ฐ์ฒด๋ ์๋ณ์ฑ ๋ฐ์ดํฐ๋ฅผ 1์ฐจ์ array๋ก ๊ฐ์ง๊ณ ์์
DataFrame.indexDataFrame์ ์ธ๋ฑ์ค ๊ฐ์ฒด ์ถ์ถ
DataFrame.index.valuesDataFrame์ ์ธ๋ฑ์ค ๊ฐ์ฒด๋ฅผ ์ค์ ๊ฐ array๋ก ๋ณํ
Index๋ ์ฐ์ฐ์ฉ์ด ์๋ ์ค์ง ์๋ณ์ฉ์ผ๋ก๋ง ์ฌ์ฉ
DataFrame.reset_index( )DataFrame ์ธ๋ฑ์ค๋ฅผ ์๋กญ๊ฒ ์ฐ์ ์ซ์ํ (0~)์ผ๋ก ํ ๋น (๊ณ ์ ์ธ๋ฑ์ค ์์ด๋ฒ๋ฆผ)
๊ธฐ์กด ์ธ๋ฑ์ค โindexโ๋ผ๋ ์๋ก์ด ์นผ๋ผ๋ช
์ผ๋ก ์ถ๊ฐ
drop ๊ธฐ๋ณธ ์ธ๋ฑ์ค๋ฅผ ์๋ก์ด ์นผ๋ผ์ผ๋ก ์ถ๊ฐํ์ง ์๊ณ ์ญ์ (default = False)
inplace reset_indexํ ๋ฐ์ดํฐํ๋ ์์ ์๋ณธ์ผ๋ก ์ ์ฅ(default = False)
[ ] ์ฐ์ฐ์DataFrame์ ์นผ๋ผ๋ง ์ง์ ํ๋ โ์นผ๋ผ ์ง์ ์ฐ์ฐ์โ
[ ] ๋ ์นผ๋ผ๋ง ์ง์ ํ ์ ์๋ ์นผ๋ผ ์ง์ ์ฐ์ฐ์๋ก ์ดํดํ๊ธฐ
๋จ์ผ ์นผ๋ผ ์ถ์ถ
titanic_df['Pclass']
์ฌ๋ฌ ์นผ๋ผ ์ถ์ถ
[ ] ์์ ํด๋น ์นผ๋ผ๋ค์ด ํฌํจ๋ [ ] ์
๋ ฅ
titanic_df[['Survived', 'Pclass']]
๋ถ๋ฆฐ ์ธ๋ฑ์ฑ ๊ฐ๋ฅ
titanic_df[titanic_df['Pclass']==3].
์ฌ๋ผ์ด์ฑ ์ฐ์ฐ์ผ๋ก ์ถ์ถํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ ์ข์
DataFrame.iloc[ ]์์น ๊ธฐ๋ฐ ์ธ๋ฑ์ฑ
ํ๊ณผ ์ด ๊ฐ์ผ๋ก integer ํน์ integerํ์ ์ฌ๋ผ์ด์ฑ, ํฌ์ ์ธ๋ฑ์ฑ๋ง ๊ฐ๋ฅ
์นผ๋ผ ๋ช
์นญ์ ์
๋ ฅํ๋ฉด ์ค๋ฅ ๋ฐ์
๋ถ๋ฆฐ ์ธ๋ฑ์ฑ์ ์ ๊ณตํ์ง ์์
Data_df.iloc[0, 0]
DataFrame.loc[ ]๋ช
์นญ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ค
loc[์ธ๋ฑ์ค ๊ฐ, ์นผ๋ผ๋ช
] ์ ๊ฐ์ ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ์ ์๋ค.
data_df.log['one', 'Name']
๋งค์ฐ ํธ๋ฆฌํ ๋ฐ์ดํฐ ํํฐ๋ง ๋ฐฉ์์ด์ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐฉ์
[ ] ์ฐ์ฐ์์ DataFrame.loc[ ] ์ฌ์ฉ
๋ณตํฉ ์กฐ๊ฑด ๊ฒฐํฉํด ์ฌ์ฉ ๊ฐ๋ฅ (&, |, ~)
[ ] ์ฐ์ฐ์์ ๊ฒฝ์ฐ : DataFrame[[์กฐ๊ฑด][์ด ์ด๋ฆ๋ค]]titanic_df[titanic_df['Age'] > 60][['Nameโ, โAgeโ]].loc[ ]์ ๊ฒฝ์ฐ: DataFrame loc[[์กฐ๊ฑด], [์ด ์ด๋ฆ๋ค]]
titanic_df.loc[titanic_df[โAgeโ] > 60, [โNameโ, โAgeโ]]
DataFrame.sort_values( )DataFrame๊ณผ Series ์ ๋ ฌ
by ์ ๋ ฌ์ ๊ธฐ์ค์ด ๋ ์ด(๋ค)์ ๋ฆฌ์คํธํ์ผ๋ก ์
๋ ฅ
ascending ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ ์ฌ๋ถ (default: True)
inplace ์ ๋ ฌํ ๋ฐ์ดํฐํ๋ ์์ ์๋ณธ์ผ๋ก ์ ์ฅ (default : false)
titanic_sorted = titanic_df.sort_values(by=['Pclass', 'Name'], ascending=False)
๊ธฐ๋ณธ ์ฐ์ฐ์ ๋์์ฃผ๋ ํจ์๋ค์ ์งํฉ (min, max, sum, median, count)
DataFrame ์ ์ฒด ํน์ ํน์ ์นผ๋ผ๋ค์ ํด๋น aggregation ์ ์ฉ
์ ์ฒด ์นผ๋ผ๋ค ๋ฐ์ดํฐํ๋ ์ ๋ค์ ํจ์ ์ ์ฉ
titanic_df.count()
ํน์ ์นผ๋ผ๋ค ๋ฐ์ดํฐํ๋ ์[[์นผ๋ผ๋ค]] ๋ค์ ํจ์ ์ ์ฉ
titanic_df[[โAgeโ, โFareโ]].mean( )
Axis ์ค์ ์ ๋ฐ๋ผ ์ ์ฉ๋๋ ๋ฐฉํฅ ๋ฌ๋ผ์ง(axis =0: ํ/ axis =1: ์ด)

์ ๋ ฅ ํ๋ผ๋ฏธํฐ by์ ์นผ๋ผ์ ์ ๋ ฅํ๋ฉด ๋์ ์นผ๋ผ์ groupby
๋ฐํ๋ DataFrame Groupby ๊ฐ์ฒด์ aggregation ํจ์๋ฅผ ํธ์ถ
groupby( ) ๋์ ์นผ๋ผ์ ์ ์ธํ ๋ชจ๋ ์นผ๋ผ์ ํด๋น aggregation ํจ์ ์ ์ฉ
ํน์ ์นผ๋ผ๋ค์๋ง ์ ์ฉ
.groupby()[์ด].ํจ์( ) , .groupby( )[[์ด๋ค]].ํจ์( )
.agg( ) ์ ์ด์ฉํด ์ฌ๋ฌ ๊ฐ์ aggregation ํจ์ ์ ์ฉ
ํ๋์ ์นผ๋ผ์ ์ฌ๋ฌ ๊ฐ์ ํจ์: .agg([ํจ์๋ค])
titanic_df.groupby('Pclass')['Age'].agg([max, min])
์นผ๋ผ์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ํจ์
.agg(dic())
agg_format = {'Age':'max', 'SibSp':'sum', 'Fare':'mean'}
titanic_df.groupby('Pclass').agg(agg_format)
๊ฒฐ์ ๋ฐ์ดํฐ๋ ์นผ๋ผ์ ๊ฐ์ด ์๋ NULL์ธ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ฉฐ ๋ํ์ด์ NaN์ผ๋ก ํ์. ๊ธฐ๋ณธ์ ์ผ๋ก ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ NaN๊ฐ์ ์ฒ๋ฆฌํ์ง ์์
DataFrame.isna( )๋ชจ๋ ์นผ๋ผ ๊ฐ์ด NaN์ธ์ง ์๋์ง true/false๋ก ๋ฐํ
๊ฒฐ์ ๋ฐ์ดํฐ ๊ฐ์๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋ DataFrame.isna( ).sum( )
DataFrame.fillna( )๊ฒฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋์ฒด ๊ฐ๋ฅ
ํน์ ์นผ๋ผ์ ๋ํด์๋ง ์ ์ฉ
DataFrame[์ด].filllna() , DataFrame[[์ด]].fillna( )
-> Inplace = True ํน์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ ์ฅํด์ผ filna( ) ์คํ ๊ฐ ์ ์ฅ๋จ
Apply lambda ์์ผ๋ก ๋ฐ์ดํฐ ๊ฐ๊ณต
์ผ๊ด์ ์ผ๋ก ๋ฐ์ดํฐ ๊ฐ๊ณต์ ํ๋ ๊ฒ์ด ๋น ๋ฅด๋ ๋ณต์กํ ๋ฐ์ดํฐ ๊ฐ๊ณต์ด ํ์ํ ๊ฒฝ์ฐ apply lambda๋ฅผ ์ด์ฉ

ํจ์์ ์ ์ธ๊ณผ ํจ์ ๋ด์ ์ฒ๋ฆฌ๋ฅผ ํ ์ค๋ก ๋ณํํ ์
DataFrame.apply(lambda ์)ํน์ ์นผ๋ผ์ ๋ํด์๋ง ์ ์ฉ
DataFrame[์ด].apply( ) `DataFrame[[์ด]].apply( )`
If else๋ฌธ list comprehension ์ฌ์ฉ
๋๋ฌด ๊ธธ์ด์ง ๊ฒฝ์ฐ ๋ฐ๋ก ํจ์ ์ ์ํ๋ ๊ฒ๋ ๋ฐฉ๋ฒ
lambda x : 'Child' if x <=15 else 'Adult
if์ ์ ๊ฒฝ์ฐ ๋ฐํ ๊ฐ์ด ์๋ณด๋ค ๋จผ์ ๋์ด