목록소소한 공부 일기/데이터 분석 (21)
초보 개발자의 일기
결측값 처리 결측값은 보통 np.nan으로 표시된다. 아래의 메소드는 대부분 원본을 변경하지 않는다. df1 = df.reindex(index=dates[0:4], columns=list(df.columns)+['E']) # 예시를 위한 df 변조 df1 데이터 삽입 df1.loc[dates[0]:dates[1], 'E'] = 1 df1 'E'열에 데이터를 삽입하여 NaN값을 줄인다. 행 삭제 df1.dropna(how='any') # df1.dropna(axis = 0)와 동일한 결과. 열 기준(axis = 1)도 가능 NaN값이 하나라도 있는 행들을 모두 삭제한다. df1.dropna(how='all')로 삭제하면 모두 NaN값인 행을 삭제한다. NaN값이 있는 자리에 Value 채우기 df1=df1..
데이터 선택 Getting 데이터 프레임의 단일 컬럼(column)을 선택하여 Series를 생성한다. ( ↓예시용 데이터 프레임) 열 인덱싱 df['A'] # column 인덱싱 - 인덱스도 함께 출력됨 2013-01-01 -0.824017 2013-01-02 -0.585061 2013-01-03 1.296661 2013-01-04 -1.111253 2013-01-05 0.963859 2013-01-06 -0.778794 Freq: D, Name: A, dtype: float64 행 인덱싱 데이터프레임명[시작행:종료행] : 종료행 이전까지 출력된다. df[0:3] # row 인덱싱 특정 행 값 인덱싱 데이터프레임명[시작행 인덱스 : 종료행 인덱스] : 종료행을 포함하여 출력된다. df['20130102..
데이터 확인 객체 생성 후 데이터를 확인하는 방법이다. shape 데이터의 모양(틀)을 출력한다. df.shape # 데이터 프레임에 적용하면 (행,열)이 출력된다. 행이 6개, 열이 4개인 데이터 프레임에 적용하면 아래와 같이 출력된다. (6, 4) head() 데이터를 위에서부터 출력한다. df.head() # 0행부터 출력 데이터프레임명.head() 형태로 사용한다. 인자를 비워두면 첫번째 0 ~ 4 행이 출력된다. 인자를 입력하면 그 수 만큼의 행이 위에서부터 출력된다. 행이 6개인 데이터 프레임에 적용하면 왼쪽과 같이 5개의 행만 출력된다. 인덱스와 column명이 함께 출력된다. tail() 데이터를 아래에서부터 출력한다. df.tail(3) # 마지막 행부터 출력 head와 같은 형태로 사용..
Series? 행(Row)만 존재하는 1차원 데이터 # pandas.core.series.Series s = pd. Seiries ([1, 3, 5, np.nan, 6, 8]) s[0]을 지정하면 1.0이 출력된다. np.nan의 type은 float으로 지정되어있어 나머지 값들도 자동으로 float64 형태로 지정된다. DataFrame? 행(Row)과 열(Column)이 존재하는 2차원 데이터 df2 = pd.DataFrame({'A':1, 'B':pd.Timestamp('20130102'), #시간 지정 'C':pd.Series(1, index=list(range(4)), dtype='float32'), 'D':np.array([3]*4, dtype='int32'), 'E':pd.Categorica..
행렬 내적과 전치 행렬을 구하는 방법이다. A = np.array([[1, 2, 3],# 예시용 행렬 생성 [4, 5, 6]]) B = np.array([[7, 8], [9, 10], [11, 12]]) 행렬 내적 내적이란 2개의 벡터가 서로 얼마나 닮았는지, 얼마나 유사한 방향을 지녔는지를 의미한다. 이 공부가 필요하므로 이후 수정할 예정이다. 자세한 내용이 설명되어있는 링크를 첨부한다. angeloyeo.github.io/2019/08/20/correlation_and_inner_product.html 상관계수는 벡터의 내적이다. - 공돌이의 수학정리노트 angeloyeo.github.io dot_product = np.dot(A, B) print('행렬 내적 결과:\n', dot_product) p..
행렬을 정렬하는 방법이다. sort() org_array = np.array([ 3, 1, 9, 5,7])# 예시 원본행렬 생성 print('원본 행렬:', org_array) 원본 행렬: [3 1 9 5 7] 행렬을 오름차순으로 정렬할 때 np.sort()로 정렬할 경우 객체 자체(원본행렬)는 변경되지 않는다. sort_array1 = np.sort(org_array) print ('np.sort( ) 호출 후 반환된 정렬 행렬:', sort_array1) print('np.sort( ) 호출 후 원본 행렬:', org_array) np.sort( ) 호출 후 반환된 정렬 행렬: [1 3 5 7 9] np.sort( ) 호출 후 원본 행렬: [3 1 9 5 7] ndarray.sort()로 정렬할 경우..