본문 바로가기
Python

1/25 - Pandas&Python; Python 기초 문법①

by PETRA_94 2024. 1. 25.

[기억할 개념]: Python - Pandas

1. .iloc[행,열] : 인덱스 번호로 선택

data.iloc[0,2]
#행과 열 번호를 통해 특정 데이터를 선택할 수 있음

# iloc을 사용하여 특정 행과 열 선택
selected_data = df.iloc[1:4, 0:2]  #인덱스 1부터 3까지의 행과 0부터 1까지의 열 선택 
print(selected_data)

 

2. .loc[로우,컬럼] : 이름으로 선택

data.loc['행이름' , '컬럼명']
#행이름과 컬럼명을 통해서도 특정 데이터를 선택할 수 있음

#loc을 사용하여 특정 행과 열 선택
selected_data = df.loc['b':'d', 'A':'B']  #레이블 'b'부터 'd'까지의 행과 'A'부터 'B'까지의 열 선택 
print(selected_data)

 

3. data.loc[: , '컬럼명']: 1개의 컬럼 전체를 선택

3-1. data[   ['컬럼명1', '컬럼명2', '컬럼명3' ]   ]: list 활용하여 여러 개의 컬럼 선택 / 순서 바꿔치기 가능

3-2. 2개 이상의 셀을 선택할 경우

# 2개 컬럼명을 선택할 경우
data.loc['행이름', ['컬럼명1', '컬럼명2']]

# 2개 행이름을 선택할 경우
data.loc[['행이름1', '행이름2'], '컬럼명1']

# 리스트 슬라이싱 : 을 활용해서 특정 범위를 지정하여 선택
data.loc['행이름', '컬럼명1' :] #'컬럼명1' : ==> 컬럼명1부터 끝까지라는 의미

 

4. Boolean Indexing: 특정 조건을 만족하는 데이터를 선택할 경우

  • 조건을 이용하여 데이터프레임에서 특정 조건을 만족하는 행을 선택하는  방법
  • 데이터를 필터링하거나 원하는 조건을 만족하는 행을 추출할 수 있음
  • 주로 불리언(Boolean) 값을 가지는 조건식을 사용하여 데이터프레임을 인덱싱하는 방법
    => 조건식에 따라 각 행이 True 또는 False 로 평가되며, 이를 바탕으로 데이터프레임을 필터링
  • 여러 조건 필터
#'age'열에서 30세 이상이면서'gender'열이 'Male'인 행 필터링 
df[(df['age'] >= 30) & (df['gender'] == 'Male')]
  • 조건에 따른 특정 컬럼 필터링
#'age'열에서 30세 이상인 경우의 'name' 열만 선택 
df.loc[df['age'] >= 30, 'name']
  • isin()활용한 필터링
#'gender'열에서'Male' 또는'Female'인 행 필터링
df[df['gender'].isin(['Male', 'Female'])

 

5. isin(): 값들 중에서 특정 값이나 리스트 안에 포함된 값들을 찾아내는 메소드
=> Series(시리즈)나 DataFrame(데이터프레임)에서 원하는 조건에 해당하는 데이터를 빠르게 필터링 or 선택할 수 있음

  • 단일 값 포함 여부 확인
#Series나 DataFrame의 특정 열에서 단일 값이 포함되어 있는지 여부를 확인
import pandas as pd
data = {'A': [1, 2, 3, 4, 5],
        'B': ['apple', 'banana', 'orange', 'grape', 'melon']} 
df = pd.DataFrame(data)
#'B'열에서'banana' 값이 있는지 확인 
result = df['B'].isin(['banana']) 
print(result)
  • 여러 값 포함 여부 확인
# 여러 값이 포함된 데이터를 찾기 위해 리스트에 여러 값을 넣어 사용
#'A'열에서 2 또는 4 값을 포함하는 행 찾기
result = df['A'].isin([2, 4]) 
print(result)
  • 데이터프레임 전체에서 사용
# 데이터프레임 전체에서 여러 열에 대해 isin()을 사용
# 데이터프레임 전체에서 여러 조건을 확인하여 필터링
result = df.isin({'A': [1, 3], 'B': ['apple', 'orange']}) 
print(result)