셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import pandas as pd titanic_df = pd.read_csv('train_df.csv') |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
In [2]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
titanic_df.drop(['PassengerId', 'Name', 'Ticket'], axis=1, inplace=True) print(titanic_df.columns.values) # 컬럼 보기 : 1번 방법 print(titanic_df.columns) # 컬럼 보기 : 2번 방법 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
['Survived' 'Pclass' 'Sex' 'Age' 'SibSp' 'Parch' 'Fare' 'Cabin' 'Embarked'] Index(['Survived', 'Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Cabin', 'Embarked'], dtype='object')
In [3]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
display(titanic_df.Age) display(titanic_df.Age.isnull().sum()) display(titanic_df.Age.mean()) titanic_df.Age.fillna(titanic_df.Age.mean(), inplace=True) display(titanic_df.Age.isnull().sum()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
0 22.0 1 38.0 2 26.0 3 35.0 4 35.0 ... 886 27.0 887 19.0 888 NaN 889 26.0 890 32.0 Name: Age, Length: 891, dtype: float64
177
29.69911764705882
0
In [4]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
display(titanic_df.Cabin) display(titanic_df.Cabin.isnull().sum()) titanic_df.Cabin.fillna('N', inplace=True) display(titanic_df.Cabin.isnull().sum()) display(titanic_df.Cabin.value_counts()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
0 NaN 1 C85 2 NaN 3 C123 4 NaN ... 886 NaN 887 B42 888 NaN 889 C148 890 NaN Name: Cabin, Length: 891, dtype: object
687
0
N 687 C23 C25 C27 4 B96 B98 4 G6 4 D 3 ... C85 1 A16 1 C101 1 B73 1 B86 1 Name: Cabin, Length: 148, dtype: int64
In [5]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
display(titanic_df.Embarked) display(titanic_df.Embarked.isnull().sum()) titanic_df.Embarked.fillna('N', inplace=True) display(titanic_df.Embarked.isnull().sum()) display(titanic_df.Embarked.value_counts()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
0 S 1 C 2 S 3 S 4 S .. 886 S 887 S 888 S 889 C 890 Q Name: Embarked, Length: 891, dtype: object
2
0
S 644 C 168 Q 77 N 2 Name: Embarked, dtype: int64
In [6]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
from sklearn.preprocessing import LabelEncoder titanic_df.Cabin = titanic_df.Cabin.str[:1] # 첫 번째 글자만 추출(0번째 글자만 추출)
le = LabelEncoder() # 레이블인코더를 써서 인코딩, 객체 생성 titanic_df.Cabin = le.fit_transform(titanic_df.Cabin) # fit_transform 으로 값을 숫자로 변경시킨다. print(titanic_df.Cabin)
titanic_df.Sex = le.fit_transform(titanic_df.Sex) print(titanic_df.Sex)
titanic_df.Embarked = le.fit_transform(titanic_df.Embarked) print(titanic_df.Embarked)
titanic_df.head() |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
0 7 1 2 2 7 3 2 4 7 .. 886 7 887 1 888 7 889 2 890 7 Name: Cabin, Length: 891, dtype: int32 0 1 1 0 2 0 3 0 4 1 .. 886 1 887 0 888 0 889 1 890 1 Name: Sex, Length: 891, dtype: int32 0 3 1 0 2 3 3 3 4 3 .. 886 3 887 3 888 3 889 0 890 2 Name: Embarked, Length: 891, dtype: int32
Out[6]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Survived |
Pclass |
Sex |
Age |
SibSp |
Parch |
Fare |
Cabin |
Embarked |
0 |
0 |
3 |
1 |
22.0 |
1 |
0 |
7.2500 |
7 |
3 |
1 |
1 |
1 |
0 |
38.0 |
1 |
0 |
71.2833 |
2 |
0 |
2 |
1 |
3 |
0 |
26.0 |
0 |
0 |
7.9250 |
7 |
3 |
3 |
1 |
1 |
0 |
35.0 |
1 |
0 |
53.1000 |
2 |
3 |
4 |
0 |
3 |
1 |
35.0 |
0 |
0 |
8.0500 |
7 |
3 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
In [7]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# titanic_df = sns.load_dataset('titanic') # 앞에서 설정한 Data Preprocessing 함수 호출
from sklearn.preprocessing import LabelEncoder import numpy as np import pandas as pd import seaborn as sns import warnings warnings.filterwarnings('ignore')
# Null 처리 함수 def fillna(df): df['Age'].fillna(df['Age'].mean(), inplace=True) df['Cabin'].fillna('N', inplace=True) df['Embarked'].fillna('N', inplace=True) return df
# 머신러닝 알고리즘에 불필요한 속성 제거(PassengerId, Name, Ticket) def drop_features(df): df.drop(['PassengerId','Name','Ticket'], axis=1, inplace=True) return df
# 레이블 인코딩 def format_features(df): df['Cabin'] = df['Cabin'].str[:1] features = ['Cabin','Sex','Embarked'] for feature in features: le = LabelEncoder() # le = le.fit(df[feature]) df[feature] = le.fit_transform(df[feature]) return df
#format_features(df) 메소드 처리 과정 # titanic_df.Cabin = titanic_df.Cabin.str[:1] # 첫 번째 글자만 추출(0번째 글자만 추출)
# le = LabelEncoder() # 레이블인코더를 써서 인코딩, 객체 생성 # titanic_df.Cabin = le.fit_transform(titanic_df.Cabin) # fit_transform 으로 값을 숫자로 변경시킨다. # print(titanic_df.Cabin)
# titanic_df.Sex = le.fit_transform(titanic_df.Sex) # print(titanic_df.Sex)
# titanic_df.Embarked = le.fit_transform(titanic_df.Embarked) # print(titanic_df.Embarked)
# 앞에서 설정한 Data Preprocessing 함수 호출 def transform_features(df): df = fillna(df) df = drop_features(df) df = format_features(df) return df
titanic_df = pd.read_csv('train_df.csv') transform_features(titanic_df.head()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Out[7]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Survived |
Pclass |
Sex |
Age |
SibSp |
Parch |
Fare |
Cabin |
Embarked |
0 |
0 |
3 |
1 |
22.0 |
1 |
0 |
7.2500 |
1 |
1 |
1 |
1 |
1 |
0 |
38.0 |
1 |
0 |
71.2833 |
0 |
0 |
2 |
1 |
3 |
0 |
26.0 |
0 |
0 |
7.9250 |
1 |
1 |
3 |
1 |
1 |
0 |
35.0 |
1 |
0 |
53.1000 |
0 |
1 |
4 |
0 |
3 |
1 |
35.0 |
0 |
0 |
8.0500 |
1 |
1 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
시계열 데이터
df의 행인덱스로 사용하면 시간으로 기록된 데이터를 분석하는 것이 매우 유용.
특정 시점을 기록하는 Timestamp와 두 시점 사이의 일정한 기간을 나타내는 Period가 있음.
문자열 또는 숫자로 저장되어 있는 시간 데이터를 시계열 객체인 TImestamp로 변환하는 함수를 제공
판다스 to_datetime() 함수를 사용하면 문자열 등 다른 자료형을 판다스 Timestamp를 나타내는 datetime64 자료형으로 변환 가능
In [8]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 라이브러리 불러오기 import pandas as pd
# read_csv() 함수로 CSV파일을 가져와서 df로 변환 df = pd.read_csv('stock-data.csv')
#데이터 내용 및 자료형 확인 display(df.head()) print('\n') display(df.info()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Date |
Close |
Start |
High |
Low |
Volume |
0 |
2018-07-02 |
10100 |
10850 |
10900 |
10000 |
137977 |
1 |
2018-06-29 |
10700 |
10550 |
10900 |
9990 |
170253 |
2 |
2018-06-28 |
10400 |
10900 |
10950 |
10150 |
155769 |
3 |
2018-06-27 |
10900 |
10800 |
11050 |
10500 |
133548 |
4 |
2018-06-26 |
10800 |
10900 |
11000 |
10700 |
63039 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
<class 'pandas.core.frame.DataFrame'> RangeIndex: 20 entries, 0 to 19 Data columns (total 6 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Date 20 non-null object 1 Close 20 non-null int64 2 Start 20 non-null int64 3 High 20 non-null int64 4 Low 20 non-null int64 5 Volume 20 non-null int64 dtypes: int64(5), object(1) memory usage: 1.1+ KB
None
In [9]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 문자열 데이터 (시리즈 객체)를 판다스 Timestamp로 변환 df['new_Date'] = pd.to_datetime(df['Date']) # df에 새로운 열 추가
# 데이터 내용 및 자료형 확인 display(df.head()) print('\n') print(df.info()) print('\n') print(type(df['new_Date'][0])) print(df['new_Date'][0]) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Date |
Close |
Start |
High |
Low |
Volume |
new_Date |
0 |
2018-07-02 |
10100 |
10850 |
10900 |
10000 |
137977 |
2018-07-02 |
1 |
2018-06-29 |
10700 |
10550 |
10900 |
9990 |
170253 |
2018-06-29 |
2 |
2018-06-28 |
10400 |
10900 |
10950 |
10150 |
155769 |
2018-06-28 |
3 |
2018-06-27 |
10900 |
10800 |
11050 |
10500 |
133548 |
2018-06-27 |
4 |
2018-06-26 |
10800 |
10900 |
11000 |
10700 |
63039 |
2018-06-26 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
<class 'pandas.core.frame.DataFrame'> RangeIndex: 20 entries, 0 to 19 Data columns (total 7 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Date 20 non-null object 1 Close 20 non-null int64 2 Start 20 non-null int64 3 High 20 non-null int64 4 Low 20 non-null int64 5 Volume 20 non-null int64 6 new_Date 20 non-null datetime64[ns] dtypes: datetime64[ns](1), int64(5), object(1) memory usage: 1.2+ KB None <class 'pandas._libs.tslibs.timestamps.Timestamp'> 2018-07-02 00:00:00
In [10]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 시계열 값으로 변환된 열을 새로운 행 인덱스로 지정. 기존 날짜 열은 삭제 df.set_index('new_Date', inplace=True) df.drop('Date', axis=1, inplace=True)
# 데이터 내용 및 자료형 확인 display(df.head()) print('\n') print(df.info()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
- 6행 선택6행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Close |
Start |
High |
Low |
Volume |
new_Date |
|
|
|
|
|
2018-07-02 |
10100 |
10850 |
10900 |
10000 |
137977 |
2018-06-29 |
10700 |
10550 |
10900 |
9990 |
170253 |
2018-06-28 |
10400 |
10900 |
10950 |
10150 |
155769 |
2018-06-27 |
10900 |
10800 |
11050 |
10500 |
133548 |
2018-06-26 |
10800 |
10900 |
11000 |
10700 |
63039 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
<class 'pandas.core.frame.DataFrame'> DatetimeIndex: 20 entries, 2018-07-02 to 2018-06-01 Data columns (total 5 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Close 20 non-null int64 1 Start 20 non-null int64 2 High 20 non-null int64 3 Low 20 non-null int64 4 Volume 20 non-null int64 dtypes: int64(5) memory usage: 960.0 bytes None
In [11]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 라이브러리 불러오기 import pandas as pd
# 날짜 형식의 문자열로 구성되는 리스트 정의 dates = ['2019-01-01', '2020-03-01', '2021-06-01']
# 문자열 데이터(시리즈 객체)를 판다스 TImestamp 로 변환 ts_dates = pd.to_datetime(dates) print(ts_dates) print('\n')
# Timestamp를 Period로 변환 pr_day = ts_dates.to_period(freq='D') print(pr_day) pr_month = ts_dates.to_period(freq='M') print(pr_month) pr_year = ts_dates.to_period(freq='A') print(pr_year) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
DatetimeIndex(['2019-01-01', '2020-03-01', '2021-06-01'], dtype='datetime64[ns]', freq=None) PeriodIndex(['2019-01-01', '2020-03-01', '2021-06-01'], dtype='period[D]', freq='D') PeriodIndex(['2019-01', '2020-03', '2021-06'], dtype='period[M]', freq='M') PeriodIndex(['2019', '2020', '2021'], dtype='period[A-DEC]', freq='A-DEC')
In [12]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 시계열 데이터 만들기 import pandas as pd
# Timestamp의 배열 만들기 - 월 간격, 월의 시작일 기준 ts_ms = pd.date_range(start = '2019-01-01', #날짜 범위의 시작 end=None, #날짜 범위의 끝 periods=6, # 생성할 timestamp 개수 freq='MS', # 시간 간격(MS : 월의 시작일, M : 월말, 3M : 3개월 간격) tz='Asia/Seoul') # 시간대(timezone) print(ts_ms) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
DatetimeIndex(['2019-01-01 00:00:00+09:00', '2019-02-01 00:00:00+09:00', '2019-03-01 00:00:00+09:00', '2019-04-01 00:00:00+09:00', '2019-05-01 00:00:00+09:00', '2019-06-01 00:00:00+09:00'], dtype='datetime64[ns, Asia/Seoul]', freq='MS')
In [13]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 월 간격, 월의 마지막 날 기준 ts_me = pd.date_range('2019-01-01', periods=6, freq='M', tz='Asia/Seoul') print(ts_me) print('\n')
# 분기(3개월) 간격, 월의 마지막 날 기준 ts_3m = pd.date_range('2019-01-01', periods=6, freq='3M', tz='Asia/Seoul') print(ts_3m) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
DatetimeIndex(['2019-01-31 00:00:00+09:00', '2019-02-28 00:00:00+09:00', '2019-03-31 00:00:00+09:00', '2019-04-30 00:00:00+09:00', '2019-05-31 00:00:00+09:00', '2019-06-30 00:00:00+09:00'], dtype='datetime64[ns, Asia/Seoul]', freq='M') DatetimeIndex(['2019-01-31 00:00:00+09:00', '2019-04-30 00:00:00+09:00', '2019-07-31 00:00:00+09:00', '2019-10-31 00:00:00+09:00', '2020-01-31 00:00:00+09:00', '2020-04-30 00:00:00+09:00'], dtype='datetime64[ns, Asia/Seoul]', freq='3M')
In [14]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# Period 배열
# Period 배열 만들기 - 1개월 길이 pr_m = pd.period_range(start='2019-01-01', end = None, periods=3, freq='M') print(pr_m) print('\n')
# Period 배열 만들기 - 1시간 길이 pr_h = pd.period_range(start='2019-01-01', end = None, periods=3, freq='H') # 기간의 길이( H : 시간 ) print(pr_h) print('\n')
# Period 배열 만들기 - 2시간 길이 pr_2h = pd.period_range(start='2019-01-01', end = None, periods=3, freq='2H') print(pr_2h) print('\n') |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
PeriodIndex(['2019-01', '2019-02', '2019-03'], dtype='period[M]', freq='M') PeriodIndex(['2019-01-01 00:00', '2019-01-01 01:00', '2019-01-01 02:00'], dtype='period[H]', freq='H') PeriodIndex(['2019-01-01 00:00', '2019-01-01 02:00', '2019-01-01 04:00'], dtype='period[2H]', freq='2H')
In [15]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 날짜 데이터 분리 import pandas as pd
# read_csv() 함수로 파일 읽어와서 df로 변환 df = pd.read_csv('stock-data.csv')
# 문자열인 날짜 데이터를 판다스 Timestamp 로 변환 df['new_Date'] = pd.to_datetime(df['Date']) # df에 새로운 열로 추가 display(df.head(3)) print('\n')
# dt 속성을 이용하여 new_Date 열의 년월일 정보를 년, 월, 일로 구분 df['Year'] = df['new_Date'].dt.year df['Month'] = df['new_Date'].dt.month df['Day'] = df['new_Date'].dt.day display(df.head(3)) print('\n')
# Timestamp를 Period로 변환하여 년월일 표기 변경하기 df['Date_yr'] = df['new_Date'].dt.to_period(freq='A') df['Date_m'] = df['new_Date'].dt.to_period(freq='M') df['Date_d'] = df['new_Date'].dt.to_period(freq='D') display(df.head(3)) print('\n')
# 원하는 열을 새로운 행 인덱스로 지정 df.set_index('Date_m', inplace=True) display(df.head(3)) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Date |
Close |
Start |
High |
Low |
Volume |
new_Date |
0 |
2018-07-02 |
10100 |
10850 |
10900 |
10000 |
137977 |
2018-07-02 |
1 |
2018-06-29 |
10700 |
10550 |
10900 |
9990 |
170253 |
2018-06-29 |
2 |
2018-06-28 |
10400 |
10900 |
10950 |
10150 |
155769 |
2018-06-28 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 10열 선택10열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Date |
Close |
Start |
High |
Low |
Volume |
new_Date |
Year |
Month |
Day |
0 |
2018-07-02 |
10100 |
10850 |
10900 |
10000 |
137977 |
2018-07-02 |
2018 |
7 |
2 |
1 |
2018-06-29 |
10700 |
10550 |
10900 |
9990 |
170253 |
2018-06-29 |
2018 |
6 |
29 |
2 |
2018-06-28 |
10400 |
10900 |
10950 |
10150 |
155769 |
2018-06-28 |
2018 |
6 |
28 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 10열 선택10열 다음에 열 추가
- 11열 선택11열 다음에 열 추가
- 12열 선택12열 다음에 열 추가
- 13열 선택13열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Date |
Close |
Start |
High |
Low |
Volume |
new_Date |
Year |
Month |
Day |
Date_yr |
Date_m |
Date_d |
0 |
2018-07-02 |
10100 |
10850 |
10900 |
10000 |
137977 |
2018-07-02 |
2018 |
7 |
2 |
2018 |
2018-07 |
2018-07-02 |
1 |
2018-06-29 |
10700 |
10550 |
10900 |
9990 |
170253 |
2018-06-29 |
2018 |
6 |
29 |
2018 |
2018-06 |
2018-06-29 |
2 |
2018-06-28 |
10400 |
10900 |
10950 |
10150 |
155769 |
2018-06-28 |
2018 |
6 |
28 |
2018 |
2018-06 |
2018-06-28 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 10열 선택10열 다음에 열 추가
- 11열 선택11열 다음에 열 추가
- 12열 선택12열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Date |
Close |
Start |
High |
Low |
Volume |
new_Date |
Year |
Month |
Day |
Date_yr |
Date_d |
Date_m |
|
|
|
|
|
|
|
|
|
|
|
|
2018-07 |
2018-07-02 |
10100 |
10850 |
10900 |
10000 |
137977 |
2018-07-02 |
2018 |
7 |
2 |
2018 |
2018-07-02 |
2018-06 |
2018-06-29 |
10700 |
10550 |
10900 |
9990 |
170253 |
2018-06-29 |
2018 |
6 |
29 |
2018 |
2018-06-29 |
2018-06 |
2018-06-28 |
10400 |
10900 |
10950 |
10150 |
155769 |
2018-06-28 |
2018 |
6 |
28 |
2018 |
2018-06-28 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
In [16]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 날짜 인덱스 활용 # 연 - 월 - 일 중에서 필요로 하는 레벨을 선택적으로 인덱싱 할 수 있음 import pandas as pd
# read_csv() 함수로 파일 읽어와서 df로 변환 df = pd.read_csv('stock-data.csv')
# 문자열인 날짜 데이터를 판다스 Timestamp로 변환 df['new_Date'] = pd.to_datetime(df['Date']) # 새로운 열에 추가 df.set_index('new_Date', inplace=True)
display(df.head(3)) print('\n') display(df.index) print('\n') |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Date |
Close |
Start |
High |
Low |
Volume |
new_Date |
|
|
|
|
|
|
2018-07-02 |
2018-07-02 |
10100 |
10850 |
10900 |
10000 |
137977 |
2018-06-29 |
2018-06-29 |
10700 |
10550 |
10900 |
9990 |
170253 |
2018-06-28 |
2018-06-28 |
10400 |
10900 |
10950 |
10150 |
155769 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
DatetimeIndex(['2018-07-02', '2018-06-29', '2018-06-28', '2018-06-27', '2018-06-26', '2018-06-25', '2018-06-22', '2018-06-21', '2018-06-20', '2018-06-19', '2018-06-18', '2018-06-15', '2018-06-14', '2018-06-12', '2018-06-11', '2018-06-08', '2018-06-07', '2018-06-05', '2018-06-04', '2018-06-01'], dtype='datetime64[ns]', name='new_Date', freq=None)
In [17]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 시간 간격 계산, 최근 180일 ~ 189일 사이의 값들만 선택하기 today = pd.to_datetime('2018-12-25') #기준일 생성
df.drop('Date',axis=1, inplace=True) # object 형태로 구성된 열 제거
df['time_delta'] = today - df.index #날짜 차이 계산 df.set_index('time_delta', inplace=True) # 행 인덱스로 지정 df_180 = df['130 days':'189 days'] display(df_180) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
- 6행 선택6행 다음에 행 추가
- 7행 선택7행 다음에 행 추가
- 8행 선택8행 다음에 행 추가
- 9행 선택9행 다음에 행 추가
- 10행 선택10행 다음에 행 추가
- 11행 선택11행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Close |
Start |
High |
Low |
Volume |
time_delta |
|
|
|
|
|
176 days |
10100 |
10850 |
10900 |
10000 |
137977 |
179 days |
10700 |
10550 |
10900 |
9990 |
170253 |
180 days |
10400 |
10900 |
10950 |
10150 |
155769 |
181 days |
10900 |
10800 |
11050 |
10500 |
133548 |
182 days |
10800 |
10900 |
11000 |
10700 |
63039 |
183 days |
11150 |
11400 |
11450 |
11000 |
55519 |
186 days |
11300 |
11250 |
11450 |
10750 |
134805 |
187 days |
11200 |
11350 |
11750 |
11200 |
133002 |
188 days |
11550 |
11200 |
11600 |
10900 |
308596 |
189 days |
11300 |
11850 |
11950 |
11300 |
180656 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Q. titanic 데이터셋에서 age, fare 2개 열을 선택하여 데이터프레임 df를 만드세요
In [1]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 풀이 import seaborn as sns
titanic = sns.load_dataset('titanic') #display(titanic.head()) df = titanic.loc[:,['age','fare']] display(df.head()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
age |
fare |
0 |
22.0 |
7.2500 |
1 |
38.0 |
71.2833 |
2 |
26.0 |
7.9250 |
3 |
35.0 |
53.1000 |
4 |
35.0 |
8.0500 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Q. 10을 더하는 함수 add_10과 두 객체의 합 add_two_obj 함수를 정의한 후 결과값이 각각 20과 20이 나오도록 출력하세요.
In [2]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
def add_10(df): df = df + 10 return df
def add_two_obj(a,b): return a+b
display(add_10(10)) display(add_two_obj(10,10)) print() |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
20
20
Q. 10을 곱하는 사용자 함수와 두 객체의 나눗셈을 수행하는 사용자 함수를 정의한 후 결과값이 각각 200과 10이 되도록 출력하세요
In [3]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
def mul_10(a): return a*10
def div(a,b): try: return a/b except ZeroDivisionError as e: print('0으로 나뉨')
print(mul_10(20)) print(div(200,1)) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
200 200.0
In [4]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
df_age = df['age'] display(df_age)
sr1 = df_age.apply(add_10) display(sr1.head()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
0 22.0 1 38.0 2 26.0 3 35.0 4 35.0 ... 886 27.0 887 19.0 888 NaN 889 26.0 890 32.0 Name: age, Length: 891, dtype: float64
0 32.0 1 48.0 2 36.0 3 45.0 4 45.0 Name: age, dtype: float64
Q. 시리즈객체 + 숫자를 연산하는 방식으로 df.age에 10을 더한 후 sr2에 저장하고 출력하세요.
In [5]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 풀이 # 시리즈 원소에 함수 매핑 def add_two_obj(a,b): return a+b sr2 = df.age.apply(add_two_obj, b=10) # 이렇게 하면 df.age 가 매개변수 a가 되는 것. b는 10으로 설정 sr2 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Out[5]:
0 32.0 1 48.0 2 36.0 3 45.0 4 45.0 ... 886 37.0 887 29.0 888 NaN 889 36.0 890 42.0 Name: age, Length: 891, dtype: float64
Q. 람다 함수를 활용해서 위와 같은 연산을 수행하고 결과를 sr3로 출력하세요.
In [6]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 풀이 display(df.age.head(3)) #원본값 sr3 = df.age.apply(lambda x : add_10(x)) #df.age에 있는 원소 하나씩 순차적으로 add_10 메소드로 실행해서 적용 # sr4 = df.age.apply(lambda a,b:a+b,b=10) # display(sr4) sr3 #10 더한 값 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
0 22.0 1 38.0 2 26.0 Name: age, dtype: float64
Out[6]:
0 32.0 1 48.0 2 36.0 3 45.0 4 45.0 ... 886 37.0 887 29.0 888 NaN 889 36.0 890 42.0 Name: age, Length: 891, dtype: float64
Q. df의 'age', 'fare' 칼럼에 10을 사칙연산하는 사용자 함수를 정의하고 applymap()으로 각 사용자 함수를 매핑한 후 출력하세요
In [55]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 풀이 # 데이터프레임의 원소에 applymap() 적용 # 데이터프레임의 개별원소에 특정 함수를 매핑하려면 applymap() 메소드 활용
import pandas as pd
df_map = df.applymap(add_10) display(df.head(3)) # 원본 데이터 display(df_map.head(3)) # applymap 으로 매핑한 데이터 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
열 너비 조절
행 높이 조절
|
age |
fare |
0 |
22.0 |
7.2500 |
1 |
38.0 |
71.2833 |
2 |
26.0 |
7.9250 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
열 너비 조절
행 높이 조절
|
age |
fare |
0 |
32.0 |
17.2500 |
1 |
48.0 |
81.2833 |
2 |
36.0 |
17.9250 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Q.df_map의 [0,0]을 NaN으로 변경한 후 missing_value 함수를 적용해서 불린 시리즈를 반환하세요.
In [57]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import numpy as np
def missing_value(series): return series.isnull()
display(df_map.iloc[0,0], '원래 있던 값') df_map.iloc[0,0] = np.nan display(df_map.head())
result = df_map.apply(missing_value, axis=0) display(result.head()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
- 6행 선택6행 다음에 행 추가
- 7행 선택7행 다음에 행 추가
- 8행 선택8행 다음에 행 추가
- 9행 선택9행 다음에 행 추가
- 10행 선택10행 다음에 행 추가
- 11행 선택11행 다음에 행 추가
열 너비 조절
행 높이 조절
|
age |
fare |
0 |
True |
False |
1 |
False |
False |
2 |
False |
False |
3 |
False |
False |
4 |
False |
False |
... |
... |
... |
886 |
False |
False |
887 |
False |
False |
888 |
True |
False |
889 |
False |
False |
890 |
False |
False |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
891 rows × 2 columns
nan
'원래 있던 값'
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
age |
fare |
0 |
NaN |
17.2500 |
1 |
48.0 |
81.2833 |
2 |
36.0 |
17.9250 |
3 |
45.0 |
63.1000 |
4 |
45.0 |
18.0500 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
age |
fare |
0 |
True |
False |
1 |
False |
False |
2 |
False |
False |
3 |
False |
False |
4 |
False |
False |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Q. titanic 데이터셋을 seaborn에서 로딩한 후 불린 인덱싱을 이용하여 아래 사항들을 수행하세요
나이가 10대(10~19세)인 승객만 따로 선택
나이가 10세 미만(0~9세)이고 여성인 승객만 따로 선택
나이가 10세 미만(0~9세) 또는 60세 이상인 승객의 age, sex, alone열만 선택
In [66]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import seaborn as sns import warnings warnings.filterwarnings('ignore')
tt_df = sns.load_dataset('titanic')
mask1 = (tt_df.age >= 10) & (tt_df.age < 20) # 관측치가 10대인거 선택 df_teen = tt_df.loc[mask1,:] # 관측치를 선택해서 조건이 들어간것들(행), 전부(열) display(df_teen.head()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 10열 선택10열 다음에 열 추가
- 11열 선택11열 다음에 열 추가
- 12열 선택12열 다음에 열 추가
- 13열 선택13열 다음에 열 추가
- 14열 선택14열 다음에 열 추가
- 15열 선택15열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
survived |
pclass |
sex |
age |
sibsp |
parch |
fare |
embarked |
class |
who |
adult_male |
deck |
embark_town |
alive |
alone |
9 |
1 |
2 |
female |
14.0 |
1 |
0 |
30.0708 |
C |
Second |
child |
False |
NaN |
Cherbourg |
yes |
False |
14 |
0 |
3 |
female |
14.0 |
0 |
0 |
7.8542 |
S |
Third |
child |
False |
NaN |
Southampton |
no |
True |
22 |
1 |
3 |
female |
15.0 |
0 |
0 |
8.0292 |
Q |
Third |
child |
False |
NaN |
Queenstown |
yes |
True |
27 |
0 |
1 |
male |
19.0 |
3 |
2 |
263.0000 |
S |
First |
man |
True |
C |
Southampton |
no |
False |
38 |
0 |
3 |
female |
18.0 |
2 |
0 |
18.0000 |
S |
Third |
woman |
False |
NaN |
Southampton |
no |
False |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
In [67]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 풀이 mask2 = (tt_df.age < 10 ) & (tt_df.sex =='female') df_female_under10 = tt_df.loc[mask2, :] display(df_female_under10.head()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 10열 선택10열 다음에 열 추가
- 11열 선택11열 다음에 열 추가
- 12열 선택12열 다음에 열 추가
- 13열 선택13열 다음에 열 추가
- 14열 선택14열 다음에 열 추가
- 15열 선택15열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
survived |
pclass |
sex |
age |
sibsp |
parch |
fare |
embarked |
class |
who |
adult_male |
deck |
embark_town |
alive |
alone |
10 |
1 |
3 |
female |
4.0 |
1 |
1 |
16.7000 |
S |
Third |
child |
False |
G |
Southampton |
yes |
False |
24 |
0 |
3 |
female |
8.0 |
3 |
1 |
21.0750 |
S |
Third |
child |
False |
NaN |
Southampton |
no |
False |
43 |
1 |
2 |
female |
3.0 |
1 |
2 |
41.5792 |
C |
Second |
child |
False |
NaN |
Cherbourg |
yes |
False |
58 |
1 |
2 |
female |
5.0 |
1 |
2 |
27.7500 |
S |
Second |
child |
False |
NaN |
Southampton |
yes |
False |
119 |
0 |
3 |
female |
2.0 |
4 |
2 |
31.2750 |
S |
Third |
child |
False |
NaN |
Southampton |
no |
False |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
In [69]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 풀이 mask3 = (tt_df.age < 10 ) | (tt_df.age >= 60) df_under10_than60 = tt_df.loc[mask3, ['age','sex','alone']] display(df_under10_than60.head()) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
age |
sex |
alone |
7 |
2.0 |
male |
False |
10 |
4.0 |
female |
False |
16 |
2.0 |
male |
False |
24 |
8.0 |
female |
False |
33 |
66.0 |
male |
True |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Q. 최대값 - 최소값을 반환하는 사용자 함수를 min max로 정의하고 age, fare열로 구성되는 타이타닉 데이터프레임df에 적용하여 결과와 자료형을 출력하세요.
source : titanic = sns.load_dataset('titanic')
In [79]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import seaborn as sns import pandas as pd titanic = sns.load_dataset('titanic') df=titanic.loc[:,['age','fare']] df.to_pickle('af_df.pkl') #피클로 바꿀건데 바꿀 이름이 af_df.pkl 이 된다.
df = pd.read_pickle('af_df.pkl')
def min_max(a): return a.max() - a.min()
#데이터 프레임의 각 열을 인수로 전달하면 시리즈를 반환 result = df.apply(min_max) #기본값 axis=0 display(result, type(result)) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
age 79.5800 fare 512.3292 dtype: float64
pandas.core.series.Series
Q. 타이타닉 df의 열 순서를 아래와 같이 재구성하고 출력하세요.
열 선택 : ['pclass', 'sex', 'age', 'survived']
열 이름의 리스트 만들기
열 이름을 알파벳순으로 정렬하기
열 이름을 기존 순서의 정반대 역순으로 정렬하기
열 이름을 사용자가 정의한 임의의 순서로 재배치하기
In [85]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import seaborn as sns titanic = sns.load_dataset('titanic') df = titanic.loc[0:4, 'survived':'age'] #행쪽은 0~4, 열쪽은 서바이브드~에이지(loc로 할땐 선택된 것 까지(선택된 것 전까지가 아님))
#열 이름의 리스트 만들기 columns = list(df.columns.values) #기존 열 이름 display(columns)
#열 이름을 알파벳 순으로 정렬하기 columns_sorted = sorted(columns) #알파벳 순으로 정렬 df_sorted = df[columns_sorted] display(df_sorted)
#열 이름을 기존 순서의 정반대 역순으로 정렬하기 columns_reversed = list(reversed(columns)) df_reversed = df[columns_reversed] display(df_reversed)
#열 이름을 사용자가 정의한 임의의 순서로 재배치하기 columns_customed = ['pclass', 'sex', 'age', 'survived'] df_customed = df[columns_customed] display(df_customed) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
['survived', 'pclass', 'sex', 'age']
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
age |
pclass |
sex |
survived |
0 |
22.0 |
3 |
male |
0 |
1 |
38.0 |
1 |
female |
1 |
2 |
26.0 |
3 |
female |
1 |
3 |
35.0 |
1 |
female |
1 |
4 |
35.0 |
3 |
male |
0 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
age |
sex |
pclass |
survived |
0 |
22.0 |
male |
3 |
0 |
1 |
38.0 |
female |
1 |
1 |
2 |
26.0 |
female |
3 |
1 |
3 |
35.0 |
female |
1 |
1 |
4 |
35.0 |
male |
3 |
0 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
pclass |
sex |
age |
survived |
0 |
3 |
male |
22.0 |
0 |
1 |
1 |
female |
38.0 |
1 |
2 |
3 |
female |
26.0 |
1 |
3 |
1 |
female |
35.0 |
1 |
4 |
3 |
male |
35.0 |
0 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
데이터프레임 연결
서로 다른 데이터프레임의 구성 형태와 속성이 균일하다면 행 또는 열 중에 어느 한 방향으로 붙여도 데이터의 일관성 유지
기존 데이터프레임의 형태를 유지하면서 이어 붙이는 개념으로 판다스 Concat() 함수를 활용
In [92]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import numpy as np import pandas as pd
a = np.arange(start=0, stop=12) a a1 = a.reshape(4,3) a1 df1 = pd.DataFrame(a1, columns=['a','b','c']) display(df1) print() b= np.arange(start=0, stop=16) b b1 = b.reshape(4,4) b1 df2 = pd.DataFrame(b1, columns=['a','b','c','d']) display(df2)
df3=pd.concat([df1,df2],axis=0) display(df3,'행으로 붙이기') df4=pd.concat([df1,df2],axis=1) display(df4,'열로 붙이기') |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
열 너비 조절
행 높이 조절
|
a |
b |
c |
0 |
0 |
1 |
2 |
1 |
3 |
4 |
5 |
2 |
6 |
7 |
8 |
3 |
9 |
10 |
11 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
열 너비 조절
행 높이 조절
|
a |
b |
c |
d |
0 |
0 |
1 |
2 |
3 |
1 |
4 |
5 |
6 |
7 |
2 |
8 |
9 |
10 |
11 |
3 |
12 |
13 |
14 |
15 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
- 6행 선택6행 다음에 행 추가
- 7행 선택7행 다음에 행 추가
- 8행 선택8행 다음에 행 추가
열 너비 조절
행 높이 조절
|
a |
b |
c |
d |
0 |
0 |
1 |
2 |
NaN |
1 |
3 |
4 |
5 |
NaN |
2 |
6 |
7 |
8 |
NaN |
3 |
9 |
10 |
11 |
NaN |
0 |
0 |
1 |
2 |
3.0 |
1 |
4 |
5 |
6 |
7.0 |
2 |
8 |
9 |
10 |
11.0 |
3 |
12 |
13 |
14 |
15.0 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
'행으로 붙이기'
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
열 너비 조절
행 높이 조절
|
a |
b |
c |
a |
b |
c |
d |
0 |
0 |
1 |
2 |
0 |
1 |
2 |
3 |
1 |
3 |
4 |
5 |
4 |
5 |
6 |
7 |
2 |
6 |
7 |
8 |
8 |
9 |
10 |
11 |
3 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
'열로 붙이기'
In [97]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
result1 = pd.concat([df1,df2], ignore_index=True) #행방향으로 붙일 때, 인덱스번호를 순서대로 넣는 방법 display(result1) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
- 6행 선택6행 다음에 행 추가
- 7행 선택7행 다음에 행 추가
- 8행 선택8행 다음에 행 추가
열 너비 조절
행 높이 조절
|
a |
b |
c |
d |
0 |
0 |
1 |
2 |
NaN |
1 |
3 |
4 |
5 |
NaN |
2 |
6 |
7 |
8 |
NaN |
3 |
9 |
10 |
11 |
NaN |
4 |
0 |
1 |
2 |
3.0 |
5 |
4 |
5 |
6 |
7.0 |
6 |
8 |
9 |
10 |
11.0 |
7 |
12 |
13 |
14 |
15.0 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
In [98]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 2개의 데이터프레임을 좌우 열 방향으로 이어 붙이듯 연결하기 result2 = pd.concat([df1, df2], axis=1) display(result2) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
열 너비 조절
행 높이 조절
|
a |
b |
c |
a |
b |
c |
d |
0 |
0 |
1 |
2 |
0 |
1 |
2 |
3 |
1 |
3 |
4 |
5 |
4 |
5 |
6 |
7 |
2 |
6 |
7 |
8 |
8 |
9 |
10 |
11 |
3 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
머신러닝 프로젝트
타이타닉 생존자 예측모델 개발
데이터 :
제공 데이터 파일 : titanic3.csv
훈련/검증용 데이터 : 평가 데이터 = 8 : 2
훈련/검증용 데이터로 모델 학습 및 검증하고 평가 데이터는 최종 평가에만 사용
모델 개발 방법 :
데이터 전처리 및 탐색적 분석을 통하여 파생변수 최소 1개 이상 개발
알고리즘은 최소한 3개 이상 적용(Decision Tree, Random Forest, Logistic Regression은 필수)
훈련 및 평가 방법 :
GridSearchCV API를 활용하여 교차검증 및 최적 하이퍼파라미터 찾아서 학습 및 검증 수행
결과물 제출 : 이메일
In [56]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
from sklearn.preprocessing import LabelEncoder import pandas as pd import numpy as np import seaborn as sns import warnings warnings.filterwarnings("ignore") # , category=FutureWarning 생략
# 데이터 정보 # Pclass Passenger Class (1 = 1st; 2 = 2nd; 3 = 3rd) # survival Survival (0 = No; 1 = Yes) # name Name # sex Sex # age Age # sibsp Number of Siblings/Spouses Aboard # parch Number of Parents/Children Aboard # ticket Ticket Number # fare Passenger Fare (British pound) # cabin Cabin # embarked Port of Embarkation (C = Cherbourg; Q = Queenstown; S = Southampton) # boat Lifeboat # body Body Identification Number # home.dest Home/Destination
titanic_df = pd.read_csv('titanic3.csv')
display(titanic_df.head(),'상단 표 : 기본데이터') # display(titanic_df.info(),'INFORMATION') def fillna(df): df['age'].fillna(df['age'].mean(), inplace=True) df['cabin'].fillna('N', inplace=True) df['fare'].fillna(df['fare'].mean(), inplace=True) df['embarked'].fillna('N', inplace=True) return df
def drop_features(df): df.drop(['home.dest','boat','body','name','ticket'], axis=1, inplace=True) return df
def format_features(df): df['cabin'] = df['cabin'].str[:1] features = ['cabin','sex','embarked'] for feature in features: le = LabelEncoder() df[feature] = le.fit_transform(df[feature]) return df
def transform_features(df): df = fillna(df) df = drop_features(df) df = format_features(df) return df
tt_feat = transform_features(titanic_df) # 메소드 호출 및 실행 tt_feat['total_family'] = tt_feat['sibsp'] + tt_feat['parch'] # total 가족 수 계산 tt_feat.drop(['sibsp','parch'], axis=1, inplace=True) # 나뉘어진 가족 열 제거
display(tt_feat)
f_plot=sns.countplot(x='total_family',hue='survived', data=titanic_df)
display(f_plot) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 10열 선택10열 다음에 열 추가
- 11열 선택11열 다음에 열 추가
- 12열 선택12열 다음에 열 추가
- 13열 선택13열 다음에 열 추가
- 14열 선택14열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
pclass |
survived |
name |
sex |
age |
sibsp |
parch |
ticket |
fare |
cabin |
embarked |
boat |
body |
home.dest |
0 |
1 |
1 |
Allen, Miss. Elisabeth Walton |
female |
29.00 |
0 |
0 |
24160 |
211.3375 |
B5 |
S |
2 |
NaN |
St Louis, MO |
1 |
1 |
1 |
Allison, Master. Hudson Trevor |
male |
0.92 |
1 |
2 |
113781 |
151.5500 |
C22 C26 |
S |
11 |
NaN |
Montreal, PQ / Chesterville, ON |
2 |
1 |
0 |
Allison, Miss. Helen Loraine |
female |
2.00 |
1 |
2 |
113781 |
151.5500 |
C22 C26 |
S |
NaN |
NaN |
Montreal, PQ / Chesterville, ON |
3 |
1 |
0 |
Allison, Mr. Hudson Joshua Creighton |
male |
30.00 |
1 |
2 |
113781 |
151.5500 |
C22 C26 |
S |
NaN |
135.0 |
Montreal, PQ / Chesterville, ON |
4 |
1 |
0 |
Allison, Mrs. Hudson J C (Bessie Waldo Daniels) |
female |
25.00 |
1 |
2 |
113781 |
151.5500 |
C22 C26 |
S |
NaN |
NaN |
Montreal, PQ / Chesterville, ON |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
'상단 표 : 기본데이터'
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
- 6행 선택6행 다음에 행 추가
- 7행 선택7행 다음에 행 추가
- 8행 선택8행 다음에 행 추가
- 9행 선택9행 다음에 행 추가
- 10행 선택10행 다음에 행 추가
- 11행 선택11행 다음에 행 추가
열 너비 조절
행 높이 조절
|
pclass |
survived |
sex |
age |
fare |
cabin |
embarked |
total_family |
0 |
1 |
1 |
0 |
29.000000 |
211.3375 |
1 |
3 |
0 |
1 |
1 |
1 |
1 |
0.920000 |
151.5500 |
2 |
3 |
3 |
2 |
1 |
0 |
0 |
2.000000 |
151.5500 |
2 |
3 |
3 |
3 |
1 |
0 |
1 |
30.000000 |
151.5500 |
2 |
3 |
3 |
4 |
1 |
0 |
0 |
25.000000 |
151.5500 |
2 |
3 |
3 |
... |
... |
... |
... |
... |
... |
... |
... |
... |
1304 |
3 |
0 |
0 |
14.500000 |
14.4542 |
7 |
0 |
1 |
1305 |
3 |
0 |
0 |
29.881138 |
14.4542 |
7 |
0 |
1 |
1306 |
3 |
0 |
1 |
26.500000 |
7.2250 |
7 |
0 |
0 |
1307 |
3 |
0 |
1 |
27.000000 |
7.2250 |
7 |
0 |
0 |
1308 |
3 |
0 |
1 |
29.000000 |
7.8750 |
7 |
3 |
0 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
1309 rows × 8 columns
<matplotlib.axes._subplots.AxesSubplot at 0x2033c28d8c8>
전송중...
사진 설명을 입력하세요.
'PYTHON' 카테고리의 다른 글
20200323 - 파이썬 탐색적 데이터 분석 - 전처리, 그룹 연산 (0) | 2020.03.23 |
---|---|
20200321 - 파이썬(미래 예측 머신러닝 모델(삼성전자, 이더리움)) (1) | 2020.03.21 |
20200319 - 파이썬 (사이킷런, 판다스, 넘파이, 행렬, 희소행렬, 정규화, 표준화, 범주화) (0) | 2020.03.19 |
20200318 - 파이썬, 데이터프레임, 타이타닉, 분석 기초, 데이터 전처리 (0) | 2020.03.18 |
20200317 - 파이썬 Series(시리즈), 종속변수, 행렬, 행렬연산, 전치 (0) | 2020.03.17 |
댓글