문과생의 파이썬

[Pandas] 원하는 데이터 선택하기

DorYi 2024. 8. 7. 17:29

loc (location)

.loc [행, 컬럼] : 이름으로 선택하기

- 레이블 기반의 인덱스 사용

 

iloc (index location)

.iloc [행, 컬럼] : 인덱스 번호로 선택하기

- 정수 기반의 인덱스 사용

 

컬럼 전체를 선택하는 경우

data.loc [:, '컬럼명'] #컬럼 1개 선택
data['컬럼명']         #컬럼 1개 선택
data[['컬럼명1', '컬럼명2', '컬럼명3']] #컬럼 여러개 선택, 순서 지정할 수 있음

 

2개 이상의 셀을 선택하는 경우

data.loc ['행이름', ['컬럼명1', '컬럼명2]]   #2개의 컬럼명을 출력할 때
data.loc ['행이름1', '행이름2'], '컬럼명1']  #2개의 행이름을 출력할 때
data.loc ['행이름', '컬럼명1' :]           #컬럼명 1부터 끝까지 출력할 때

 

불리언 인덱싱

df[df['age'] >= 30]     
#단일 조건, age열에서 30세 이상인 행 필터링

df[(df['age'] >=  30) & (df['gender'] == 'male')] 
#여러 조건, age열 30세 이상이면서 gender열 male인 행 필터링

df.loc[df['age'] >= 30, 'name'] 
#조건에 따른 특정 컬럼, age열 30세 이상인 경우 name열만 선택

 

💡.isin( ) 매소드

df.isin(values)

 

리스트를 활용하여 여러 값들을 포함하는 행을 선택할 수 있다.

- values : lterable, series, dataframe, dict 등이 올 수 있다.

- series일 경우 index가 일치해야 한다.

- dataframe일 경우 index와 열 레이블이 일치해야 한다.

- dict일 경우 key는 열 레이블이다.

 

data = {'A': [1, 2, 3, 4, 5],
        'B': ['apple', 'banana', 'orange', 'grape', 'melon']}
        
df = pd.DataFrame(data)
result = df['B'].isin(['banana'])