글쟁이, 코딩한다

1216 / K_digital 8일차 / 파이썬(pandas) 본문

나는 코딩도 한다/TIL

1216 / K_digital 8일차 / 파이썬(pandas)

Algori 2020. 12. 16. 23:27

0.

  데이터 전처리에 이어 시각화까지, 실제 통계를 바탕으로 진행했다.

  여전히 실제 코드가 나오기까지 많은 것을 이해하지 못했지만, 데이터를 다루는 일련의 프로세스를 지켜봤다.

  쓰는 라이브러리와 함수들의 볼륨을 넓히다보니, 확실히 지금과 같은 단순 기록은 더 필요가 없다고 느껴진다.

 

  오늘의 데이터 전처리를 위한 함수를 마지막으로 블로그 TIL에 이런 기록들을 올리는 것은 그만두려 한다. (개인적으로 쓰면서 익히는 타입이라, 익히기 위한 필기는 이어할 생각이다.) 앞으로는 그 날 주로 다룬 라이브러리, 핵심 함수, 과정 정도만 간단히 적겠다.

  무엇보다 공부의 기록은 오히려 현재 단계에서 마주하는 문제, 해결을 위한 검색, 해결책 등에 포커싱하는 것이 좋아 보인다. 또 어떤 고민들 역시. 경험상 나는 고민을 기록하고 나서야 그 해결 방책에 관해 더 깊이 탐구하는 편이다. 

 

데이터 전처리(2)

 

1. 필터링

 

df[ ]의 key 값에 조건을 넣을 수 있다. #bool 꼴의 키값 #열을 기준으로 삼아 행을 다룬다.
1) df[ df['column1'] == 'column2' ] 
#==, !=, <= 등 연산자를 활용해 일정 행을 없앨 수 있다.
2) df[ (조건식) & (조건식) ], df [ (조건식) | (조건식) ], df [ ~(조건식) ]
#영문 연산자(and, or, not) 등이 안 먹힘.(예외) #식을 두 개 이상 쓸 때는 소괄호가 필수
3) df[ df['column1'].str.함수( ) ]
#문자열에 넣을 수 있는 함수를 넣을 수도 있다.

 

2. 여러 정리법 (apply, pivot_table, itterow 등)

 

  1. 새로운 열을 추가할 때, 다른 열을 바탕으로 조절해보자. ( .apply( ), .get( ), lambda 함수 등을 적극 활용하자.) 
  2. 데이터 정리. pandas.pivot_table( ) 을 적극 활용. index열을 잘 잡기. 
  3. 기존 데이터를 바탕으로 새로운 열을 구성할 때 = 추가 시 다른 열을 이용한 연산을 곧바로 사용해보자.
  4. 행 삭제 : df = df.drop(['low1']) #drop을 이용한 열 삭제 : 열 이름을 나열하고 뒤에 axis 옵션을 바꿔준다 
  5. .iterrow( ) #행을 순서대로 뺑뺑 돌려 행의 값을 돌려준다 #값을 튜플로 돌려줌 
  6. .at ['row_index', 'row'] = x : 열 이름, 행 이름을 지정하고 그 셀의 값을 집어넣는다.
  7. index 열 잡기 : df.set_index('column_index') <-> 풀기 : df.reset_index('column_index') 

3. masking

 

데이터 수정 / 필터랑 다르다
ex) df [ df['column'] > 1] = 1
bool 값(True, False)의 체로 거르기 <= 이 데이터를 Key 값으로 활용

4. merge


두 가지 데이터프레임 df_A와 df_B를 합쳐 merged_df를 만들고자 할 때:
  1)merged_df = df_A.join(df_B) 조건 : 2개의 데이터프레임의 index 열이 같아야 함 (권장)
  2)merged_df = pd.merge(df_A, df_B, options...) :index 열을 직접 정할 수 있음, 세부 커스터마이징이 가능 
  3)merged_df = pd.concat([df_A, df_B]) 되는대로 가져다 붙임. 순서가 뒤죽박죽이 될 수 있다. (권장하지 않는다)


오늘의 TML

 

1. 하나의 열= Column(variable) = Attribute = Dimension = Feature
 열의 자릿수가 다르다 == Feature scale이 서로 다르다(엉망이다). 문제다.
-> 자릿수를 맞추는 작업(ML, 딥러닝 작업을 위해서는 거의 필수) : Feature scaling, F.normalization
  1) Min-Max algo : min(열)=0, max(열)=1

  2) Standardization : mean(열)=0, Std(열)=1
#이런 식들은 함수로 만들어져 있다. 

 

2. 멀티커서 만들기 : Ctrl + 마우스좌클릭 

 

오늘의 생각

 

기능을 외운다기보다 필요한 방법을 검색해보자. 라이브러리, 함수, 원하는 바 순서로 검색하면 좋다. (영어로)
어떤 데이터를 가공하고자 할 때, 우선 로드맵을 작성해보자
데이터를 정돈할 때, 자릿수를 맞추기 위해 어떤 기준들은 같은 스케일로 다루는 것이 맞을까. 데이터 윤리에 대해.

 

오늘의 블로그

 

1) TIL도 좋지만, 제대로 된 글을 올릴 필요도 있어 보인다. 

2) 기본 개념이라도 이해한 것을 온전히 정리해 다뤄보자.

3) 지금 다니고 있는 K_디지털 트레이닝 멋사 과정 후기도 좋은 소재가 될 듯 하다.

4) 주말에는 나를 위한 글도 좀 써보자.

 

Comments