파이썬(Python)

판다스 / pandas 2 - 데이터 추출(인덱싱, 슬라이싱, loc, iloc, 불리언 인덱싱)

무지성개발자 2021. 8. 5. 00:07

- 데이터 준비-


panadas 인덱싱


- 차원축소가 일어납니다.

- 수직 방향, 컬럼 단위로 데이터를 추출합니다.

 

customer['customer_id']

customer[['customer_id', 'name']].tail(2)

# 차원을 유지하고 싶을 때 []로 더 감싸주면 됩니다.


pandas 슬라이싱


- 차원이 유지됩니다.

- 수평 방향, 인덱스(row) 단위로 데이터를 추출합니다.

 

customer[1:4]  => 인덱스의 순서를 사용한 경우

# 인덱스의 순서를 사용하면 a<= [a : b] < b

df['2021-08-04':'2021-08-08']

# 인덱스의 값을 사용하면 a<= [a : b] <= b

 

 

customer[1:10:2]

# 인덱스 순서 1부터 9까지 2의 간격으로 출력합니다.


pandas loc


- location(위치) 정보를 이용하여 데이터를 추출하는 방법입니다.

 

customer.loc[1]

customer.loc[[1]] : 차원을 유지할 수 있습니다.

customer.loc[1:3] : 인덱스값으로 슬라이싱한 것과 비슷합니다.

customer.loc[1:10 ,['name', 'gender', 'start_date']] 

customer.loc[1, 'class'] : 차원 축소가 2회 진행되어 스칼라값만 출력되었습니다.


pandas iloc


- idex location(인덱스 위치) 정보로 데이터를 추출하는 방법

- 펜시 인덱싱과 유사

- 0,1,2 와 같은 암묵적인 인덱스 표기 방식으로 데이터를 특정

 

df.iloc[1]

df.iloc[1:3, 1:3]

df.iloc[[4,0,2], [1,3]]

# 데이터와 컬럼을 비연속적으로 재배치하여 추출이 가능합니다.


pandas 불리언 인덱싱


- 해당 컬럼의 데이터와 비교하여 불리언데이터로 변경해줍니다.

 

customer.is_deleted == 1  : 탈퇴한 회원은 1로 표시되며 1이면 True로 표시

 

cus = customer[customer.is_deleted == 1]
cus.head()

 

# 탈퇴한 회원만 데이터 프레임 형식으로 만드는 방법입니다.