코딩/Jupyter

DataFrame 다루기 #4

김재형재 2021. 2. 4. 00:51

1. DataFrame 인덱싱

인덱싱하는 부분은 연습을 많이해서 손에 잘 익혀야 한다. 문제도 많이 풀어야 한다. 구글링을 해서 문제는 많이 풀어보자.

 

주의해야 할 점은. 대괄호의 갯수, :의 쓰임새, loc붙냐 안붙냐 사소한것에 따라 값이 많이 바뀌므로 주의하자.

 

- 기본형: 해당변수.loc['row값', 'column값']

 

- 한줄 통째로: 표변수.loc['row값', :] 혹은 표변수.loc[:, 'column값']

 

  loc 단축모형
row 이름 df.loc['a]  
row 리스트 df.loc[['a','b']]  
row 슬라이싱 df.loc['a':'b'] df['a':'b']
column이름 df.loc[:, 'a'] df['a']
column리스트 df.loc[:, ['a','b']] df[['a':'b']]
column슬라이싱 df.loc[:, 'a':'b']  

- 조건문: 변수['coulmn값'] > x 이면 각 값에 대해서 True와 False가 나오고, True값에 해당하는 index값만 처리되어 나온다.

이렇게 True와 False를 가려준 후

값을 덧씌우면,

- 위치로 인덱싱: 인덱스로 인덱싱? 한다고 생각하자. loc가 아닌 iloc를 사용한다.

변수.iloc[x, y] 이면 인덱스이므로 x+1번째 row와 y+1번째 column을 가져온다.

변수.iloc[[x,y], [a,b]] 이면 각각에

  a+1 b+1
x+1 o o
y+1 o o

이렇게 된다.

 

 

 

 

2. 값 변형하기

    1. DataFrame 값쓰기

- 결과값 바꾸기 1: 표변수.loc['x', 'y'] = 25 이면, 기존에 있던 값이 바뀜 

- 결과값 바꾸기 2: 표변수.loc['row값'] = ['칼럼의 갯수만큼 적기], 표번수.loc[:, 'column값'] = ['row값 갯수만큼 적기'] 이면, 줄 전체가 바뀐다.

row값을 바꿈

 

column값 바꿈

-결과값을 하나로 통일: 표변수loc['row값'] = x 이면 x로 'row값' 의 칼럼값이 다 바뀐다.

- 결과값 2개이상 바꾸기: 표변수[['column1', 'column2']] = A 이면 column1, 2의 row값이 다 A로 바뀐다. (표변수.loc[['row1', 'row2']] = B 이면 row1, 2의 column값이 다 B로 바뀐다.

 

- 연속된값 바꾸기: 표변수.loc[:, 'column1':'column2'] = 'B' 이면 column1 ~ column2 까지 다 B 된다.

- 불린값: df.loc[df['column값']>160] 이면 column값이 160보다 큰값만 나온다. 

 

 

 

    2. DataFrame 값 추가, 삭제

- 값 추가: 표변수.loc['추가하고싶은이름'] = ['갯수에맞게,입,력'] 하면 값이 추가된다.

- 삭제: 표변수.drop('삭제원하는값', axis = 'index', inplace = True) 

axis 뒤에 'colum'을 넣으면 column값이 사라지며, True 이므로 기존의 DataFrame이 바뀐다. implace = False 를 넣으면, 새로운 DataFrame을 만든것이다.

 

 

 

 

    3. index/ column 설정하기

- 이름 바꾸기: 변수.rename(columns = {'기존값':'바꿀값'}). 

변수.rename(columns = {'기존값':'바꿀값'}, inplaec = True) 면 기존DataFrame을 바꾼것이다. columns 자리에 index를 넣으면 index가 바뀐다. 

 

- index명령 설정: 변수.index.name = 'A' 이면 index위에 A가 생긴다.

 

 

 

 3. 큰 데이터 다루기

이때까지 쓴 DataFrame은 눈으로 다 보일만한수의 row와 column이었다. 하지만, 몇백개씩 되는 DataFrame을 눈으로 다 확인하면서 체므하긴 힘들다. 이런경우엔 어떻게 해야 할까?

 

- 변수.head(x) 위에서부터 x번째 확인가능

- 변수.tail(x) 밑에서부터 x개 확인가능

- 변수.shape (row, column)꼴로 나온다. 각각의 갯수를 알수 있다

- 변수.columns column값 확인가능하다

- 변수.info()    coulms, row, type등 모든값 확인 가능하다

- 변수.describe()  통계확인가능

- 변수.sort_values(by = 'column값')   특정 column값 내림차순으로 정리가능 뒤에 ,inplace = True 이면 오름차순

 

 

- 변수['column값'].unique()  각 coulmn이 어떤것들이 있는지 알 수 있다.

- 변수['column값'].value_counts() 각 coulmn들이 몇개인지 알 수 있다.