본문 바로가기

데이터 분석 학습

16장 데이터를 추출하는 다양한 방법 (3)

반응형

16-3 df.iloc[] 이용하기

인덱스 번호를 지정해 행 추출하기

# 0행 추출
df.iloc[0]

"""
id          1
nclass      1
math       50
english    98
science    50
Name: 0, dtype: int64
"""
# 2행 추출
df.iloc[2]

"""
id          3
nclass      1
math       45
english    86
science    78
Name: 2, dtype: int64
"""

행이 1개일 때 데이터 프레임 자료 구조 유지하기

# 시리즈로 추출
df.iloc[0]

"""
id          1
nclass      1
math       50
english    98
science    50
Name: 0, dtype: int64
"""
# 데이터 프레임으로 추출
df.iloc[[0]]

여러 행 추출하기

# 1, 3, 5행 추출
df.iloc[[0, 3, 5]]

연속된 행 추출하기

  • df.loc[x:y] = x행 이상 y행 이하 추출
  • df.iloc[x:y] = x행 이상 y행 미만 추출
df.loc[1:5]  # 1~5행 출력

df.iloc[1:5]  # 1~4행 출력

인덱스 문자열만 있어도 인덱스 번호로 행 추출 가능

# 인덱스 문자열이 있는 데이터 프레임
df_label

df_label.iloc[0]

"""
var1    1
var2    4
Name: kim, dtype: int64
"""

인덱스 번호를 지정해 열 추출하기

# 모든 행의 1열 추출
df.iloc[:, 1]

"""
0     1
1     1
2     1
3     1
4     2
5     2
6     2
7     2
8     3
9     3
10    3
11    3
12    4
13    4
14    4
15    4
16    5
17    5
18    5
19    5
Name: nclass, dtype: int64
"""
# 모든 행의 1, 3열 추출
df.iloc[:, [1, 3]]

인덱스 번호를 지정해 행,열 추출

# 2행의 3열 추출
df.iloc[2, 3] 

##출력: 86
# 0, 1행의 2, 3열 추출
df.iloc[[0, 1], [2, 3]]

조건을 충족하는 행을 추출할 수 없음

df.loc[ ]와 df.iloc[ ]의 차이점

정리하기

## 1. [] 이용하기

df[df['math'] >= 80]                          # 조건을 충족하는 행 추출
df[(df['nclass'] == 1) & (df['math'] >= 50)]  # 여러 조건을 충족하는 행 추출

df[['id', 'nclass']]                          # 열 추출
df[df['nclass'] == 1]['math']                 # 조건을 충족하는 행에서 열 추출
df[df['nclass'] == 1][['math', 'english']]    # 조건을 충족하는 행에서 여러 열 추출


## 2. df.loc[] 이용하기

df.loc['kim']            # 인덱스 문자열로 행 추출
df.loc[['kim', 'park']]  # 인덱스 문자열로 여러 행 추출  

df.loc[:, 'var1']        # 문자열로 열 추출
df.loc['lee', 'var1']    # 행, 열 모두 문자열로 추출

df.loc[0]                # 인덱스 번호로 행 추출
df.loc[[1, 3, 5]]        # 인덱스 번호로 여러 행 추출

df.loc[7:9]              # 연속된 행 추출: x행 이상 y행 이하
df.loc[:2]               # 첫 행부터 추출
df.loc[5:]               # 끝 행까지 추출
df.loc[:]                # 모든 행 추출

df.loc[df['math'] >= 60]                        # 조건을 충족하는 행 추출
df.loc[0:3, 'math']                             # 조건을 충족하는 행에서 열 추출
df.loc[df['nclass'] == 1, ['math', 'english']]  # 조건을 충족하는 행에서 여러 열 추출


## 3. df.iloc[] 이용하기

df.iloc[0]               # 인덱스 번호로 행 추출
df.iloc[1:5]             # 연속된 행 추출: x행 이상 y행 미만

df.iloc[:, 1]            # 인덱스 번호로 열 추출
df.iloc[2, 3]            # 행과 열을 모두 인덱스 번호로 추출
df.iloc[[0, 1], [2, 3]]  # 여러 행과 여러 열을 모두 인덱스 번호로 추출

 

 

 

 

 

※ 해당 내용은 <Do it! 파이썬 데이터 분석>의 내용을 토대로 학습하며 정리한 내용입니다.

반응형