LMS
# 컬럼별 결측치 갯수 확인하기
len(df) - df.count() # df.count()는 시리즈로 컬럼별 데이터 갯수 가져 옴
>>> Series 형태로 컬럼별 결측치 갯수 나옴
Outliers
np.percentile(array-like(데이터), float or array-like(몇분위))
하면 ndarray로 반환됨Duplicates
df.duplicated()
df.drop_duplicates()
하면 중복 row 없어짐Normalization
- 컬럼별 값들 간에 차이가 클 때(이럴 때 clustering 같은 거 해서 데이터 간 거리를 재면 데이터 값이 큰거의 영향을 많이 받게 됨)
# 데이터 x를 Standardization 기법으로 정규화합니다.
x_standardization = (x - x.mean())/x.std()
x_standardization
pd.Series.hist()
가 좋을 듯)bins
파라미터에 들어갈 구간 list
를 만들어서 pd.Series.hist(bins=)
의 argument로 넣어주자pd.cut
은 세팅된 구간을 기준으로 나누고, pd.qcut
균등한 분포를 기준으로 나눈다. boolean indexing
의 원리를 알아냈다series(숫자형)
- seiries(숫자형)
or series(숫자형)
- scalar
하면 series
로 반환된다(값 하나하나 for loop으로 꺼내지 않아도 되는 편리함...)DataFrame
(+,-,*,/) DataFrame
도 되나 보다...(position-wise로 사칙연산 함)풀잎스쿨
isinstance(객체명, 클래스명)
=> bool 값 반환--
이렇게 붙은 method는 파이썬이 자동으로 호출해주는 method인데, special method 혹은 magic method라고 부름__init__
.
을 통해 접근할 수 있지만, attribute(속성)는 instance object의 특징 같은 것이고, method는 뭔가 함수 같이 액션을 취하는 것이다class Person:
def __init__(self, *args):
self.name = args[0] # 인덱싱으로 가져오면 됨
self.age = args[1]
self.address = args[2]
maria = Person(*['마리아', 20, '서울시 서초구 반포동'])
class Person:
def __init__(self, **kwargs): # 대신 이때는 key=value 형식으로 써야할 듯
self.name = kwargs['name']
self.age = kwargs['age']
self.address = kwargs['address']
maria1 = Person(name='마리아', age=20, address='서울시 서초구 반포동')
maria2 = Person(**{'name': '마리아', 'age': 20, 'address': '서울시 서초구 반포동'})
instance 만들고 속성 추가해도 됨(그냥 ‘변수명’.’속성명’ = 값
으로 할당하면 됨)
lambda
: (lambda x: len(x))([1,2,3,4]
>>> 4 출력됨(x에 리스트 통으로 들어감
: some_list.sort(key=lambda x: len(x), reverse=True)
>>> key 파라미터의 특성상 x로 리스트가 주어지면 리스트의 요소가 하나씩 들어가서 len(x)
가 나온다.
test - train.min() / train.max() - train.min()
을 하는 게 맞는 것을 이해하겠는데, standardization은 어떻게 기준을 똑같이 맞출까...?test - train.mean() / train.std()
혹은 test - test.mean() / train.std()
?# 각각의 row 구하기
t1 = trade[(trade['기간'] == '2015년 04월') & (trade['국가명'] == '미국')]
t2 = trade[(trade['기간'] == '2016년 04월') & (trade['국가명'] == '미국')]
t3 = trade[(trade['기간'] == '2017년 04월') & (trade['국가명'] == '미국')]
t4 = trade[(trade['기간'] == '2018년 04월') & (trade['국가명'] == '미국')]
t5 = trade[(trade['기간'] == '2019년 04월') & (trade['국가명'] == '미국')]
# 합치기
us_df = pd.concat([t1, t2, t3, t4, t5])
# 수출금액 합계 및 평균 구하기
replacement = us_df['수출금액'].sum() / len(us_df)
# 값 할당하기
trade.loc[191, '수출금액'] = replacement
# 확인
print('value to be replaced :', replacement)
trade.loc[[191]]