본문 바로가기

프로그래밍 언어/Python

[Python] 판다스 데이터 프레임: loc(), iloc(), rename(), append(), drop(), set_index(), reset_index()

반응형

 레이블과 인덱스

 

- Accessing and Deleting elements in Pandas Series 

- 판다스에서 2차원을 데이터 프레임이라고 한다.

 

- 용어

ㄴ 왼쪽 진한 글자가 인덱스

ㄴ 위쪽 진한 글자가 컬럼

ㄴ 안에 있는 데이터는 밸류

ㄴ DataFrame, index, Columns, values

 

- NaN(Not a Number): 해당 항목에 값이 없음을 뜻함

ㄴ NaN은 실제로 우측과 같음: np.nan

ㄴ NaN도 데이터에 포함임

 

데이터 프레임에서 데이터를 억세스 하는 방법

- Accessing Elements in Pandas DataFrames

- 중요한부분! 

import pandas as pd

items2 = [{'bikes': 20, 'pants': 30, 'watches': 35}, 
          {'watches': 10, 'glasses': 50, 'bikes': 15, 'pants':5}]
df = pd.DataFrame(data = items2, index = ['store 1','store 2'])
df

판다스에서 데이터 억세스 방법이 3가지.

 

 1. 컬럼 억세스: 컬럼 데이터를 억세스(가져오는) 방법 : 변수명 옆에 바로 대괄호 

 

- “변수명.컬럼명” -> df.bikes

…의 방법도 있지만, 속성인지 컬럼값인지 헷갈릴 수 있으므로, 이렇게 사용하는 것은 추천하지 않는다. 

 

- 두개의 컬럼을 가져올 경우

 

2. 행과 열의 정보로, 데이터를 가져오는 방법: 판다스변수명.loc[인덱스, 컬럼명]

- 사람용인, 인덱스와 컬럼명으로 데이터를 억세스(가져오는) 방법

- loc는 location의 줄임말

 

-  ex) 스토어 2 에서, 팬츠부터 글래시스까지의 데이터를 가져오시오.

df.loc['store 2','pants':'glasses']

df.loc['store 2','pants':]

위 두개의 코드는 같은 뜻이다.

 

3. 컴퓨터용의 인덱스로, 행과 열을 가져오는 방법: 판다스변수명.iloc[행 인덱스, 열인덱스]

 

 

데이터 프레임에서 데이터 값 변경: 해당값 억세스 = 변경할 데이터값

 

인덱스/컬럼명 변경: 판다스 데이터프레임 변수명.rename(index/columns = {기존 인덱스/컬럼명 : 변경할 명칭}

 

ex) store 3를 last store로 이름을 변경하고 싶다.

 

- 또 다른 방법: 

 

컬럼의 개수와 순서대로, 똑같이 기입해준다.

pop_Seoul.columns = ['구별','인구수','한국인','외국인','고령자']

 

 

새로운 컬럼을 생성/추가: 판다스 데이터프레임 변수명[추가할 컬럼명] = [입력할 데이터값]

- ex) shirts 품목을 만들었고, store1에는 15개, store 2에는 2개를 들여왔습니다. 

 

- ex) pants 컬럼의 데이터와 shirts 컬럼의 데이터를 합해서, suits 컬럼을 만드세요.

 

새로운 행을 생성/추가: 판다스 데이터프레임 변수명.append(추가할 데이터프레임)

new_item = [{'bikes':20,'pants':30,'watches':35,'glasses':4}]
new_store = pd.DataFrame(data=new_item,index=['store 3'])

df = df.append(new_store)
df

-> 딕셔너리 생성

-> 데이터 프레임 생성

-> append()함수를 이용하여 데이터 추가

 

 

기존 행 삭제: 판다스 데이터프레임 변수명.drop(‘인덱스명’, (axis=0))

- axis = 0이 디폴드 값이다. 

- 첫번째 파라미터가, 인덱스나 컬럼을 입력한다.

- 뒤에 파라미터를 적지 않으면, 디폴트 파라미터가 axis =0 (행)

- axis =1 이 열.

 

 

- inplace = True 

-> drop함수에 있는 자체적으로 inplace를 이용하여, 저장한다. 는 뜻

- 디폴트 값이 False며, True면 저장, False는 저장x 라는 뜻

- append() 함수에는 inplace 파라미터가 없다.

 

컬럼 삭제: 판다스 데이터프레임 변수명.drop(‘컬럼명’, axis=1)

- axis = 0이 디폴드 값이므로, axis =1을 반드시 기재해주어야한다.  

 

ex) glasses 컬럼을 삭제하세요.

 

ex) glasses 컬럼과 suits 컬럼을 삭제하세요.

 

컬럼 ->인덱스: 판다스 데이터프레임 변수명.set_index(‘컬럼명’), reset_index()

 

 

판다스 데이터프레임 변수명.set_index()

- 있던 컬럼을 인덱스로 치환된다.

판다스 데이터프레임 변수명.set_index(drop=True)

ㄴ 원래 있던 인덱스는 컬럼으로 올리지 말고, 버리라는 뜻

 

판다스 데이터프레임 변수명.reset_index()

- 기존에 인덱스로 설정되어있는 것이, 데이터로 치환된다.

- 왼쪽부터 추가된다. 



 

반응형