Pandas 기초

파이썬에서 표 형태의 데이터를 탐색하고 분석하는데 사용하는 판다스 라이브러리 사용법을 알아봅니다.


수강중

6. 행 선택

동영상이 없는 텍스트 강의 자료입니다.

판다스에서 행을 선택하는 여러 가지 방법을 알아봅니다. 먼저 예제 데이터를 엽니다.

import pandas as pd
df = pd.read_excel('census.xlsx')

인덱스

행 번호는 .index로 확인할 수 있습니다.

df.index
RangeIndex(start=0, stop=32561, step=1)

인덱스로 선택하기

.loc[인덱스]로 특정 인덱스의 행을 선택할 수 있습니다. 0번 인덱스 행을 선택하려면 다음과 같이 합니다.

df.loc[0]
age                          39
workclass             State-gov
fnlwgt                    77516
education             Bachelors
education_num                13
marital_status    Never-married
occupation         Adm-clerical
relationship      Not-in-family
race                      White
sex                        Male
capital_gain               2174
capital_loss                  0
hours_per_week               40
native_country    United-States
income                    <=50K
Name: 0, dtype: object

3번 인덱스 행을 선택하려면 다음과 같이 합니다.

df.loc[3]
age                               53
workclass                    Private
fnlwgt                        234721
education                       11th
education_num                      7
marital_status    Married-civ-spouse
occupation         Handlers-cleaners
relationship                 Husband
race                           Black
sex                             Male
capital_gain                       0
capital_loss                       0
hours_per_week                    40
native_country         United-States
income                         <=50K
Name: 3, dtype: object

여러 행 선택

.loc[[인덱스1, 인덱스2, ...]]와 같이 여러 행을 선택할 수 있습니다.

df.loc[[3, 4, 5]]
age workclass fnlwgt education education_num marital_status occupation relationship race sex capital_gain capital_loss hours_per_week native_country income
3 53 Private 234721 11th 7 Married-civ-spouse Handlers-cleaners Husband Black Male 0 0 40 United-States <=50K
4 28 Private 338409 Bachelors 13 Married-civ-spouse Prof-specialty Wife Black Female 0 0 40 Cuba <=50K
5 37 Private 284582 Masters 14 Married-civ-spouse Exec-managerial Wife White Female 0 0 40 United-States <=50K

:을 이용해서 범위로 선택할 수도 있습니다.

df.loc[3:5]
age workclass fnlwgt education education_num marital_status occupation relationship race sex capital_gain capital_loss hours_per_week native_country income
3 53 Private 234721 11th 7 Married-civ-spouse Handlers-cleaners Husband Black Male 0 0 40 United-States <=50K
4 28 Private 338409 Bachelors 13 Married-civ-spouse Prof-specialty Wife Black Female 0 0 40 Cuba <=50K
5 37 Private 284582 Masters 14 Married-civ-spouse Exec-managerial Wife White Female 0 0 40 United-States <=50K

행과 열을 선택

.loc[행, 열] 형식으로 행과 열을 고를 수 있습니다.

df.loc[3:5, 'age']
3    53
4    28
5    37
Name: age, dtype: int64

위치로 선택

.iloc은 인덱스가 아닌 위치를 기준으로 행과 열을 선택합니다.

아래 df2df에서 3~5 인덱스 행을 뽑아 만든 표입니다.

df2 = df.loc[3:5]
df2
age workclass fnlwgt education education_num marital_status occupation relationship race sex capital_gain capital_loss hours_per_week native_country income
3 53 Private 234721 11th 7 Married-civ-spouse Handlers-cleaners Husband Black Male 0 0 40 United-States <=50K
4 28 Private 338409 Bachelors 13 Married-civ-spouse Prof-specialty Wife Black Female 0 0 40 Cuba <=50K
5 37 Private 284582 Masters 14 Married-civ-spouse Exec-managerial Wife White Female 0 0 40 United-States <=50K

df2에서 3번 인덱스 행은 df의 3번 인덱스 행과 같습니다.

df2.loc[3]
age                               53
workclass                    Private
fnlwgt                        234721
education                       11th
education_num                      7
marital_status    Married-civ-spouse
occupation         Handlers-cleaners
relationship                 Husband
race                           Black
sex                             Male
capital_gain                       0
capital_loss                       0
hours_per_week                    40
native_country         United-States
income                         <=50K
Name: 3, dtype: object

그리고 3번 인덱스 행은 df2의 0번째입니다..

df2.iloc[0]
age                               53
workclass                    Private
fnlwgt                        234721
education                       11th
education_num                      7
marital_status    Married-civ-spouse
occupation         Handlers-cleaners
relationship                 Husband
race                           Black
sex                             Male
capital_gain                       0
capital_loss                       0
hours_per_week                    40
native_country         United-States
income                         <=50K
Name: 3, dtype: object

age는 0번째 열이므로 iloc으로 선택할 때는 다음과 같이 합니다.

df.iloc[3, 0]
53