3. 데이터 선택하기 (Data Selection)
.iloc.locindex slicingpandas
특정 열 선택
DataFrame이 가지고 있는 []
를 이용해 슬라이싱하여 출력하는 방법입니다. 특정 열 값만 가지고 오고 싶다면'데이터프레임명'['Column명']
과 같은 형태로 입력합니다. 이는 df.A
와 동일합니다. 리턴되는 값은 Series
의 자료구조를 가지고 있습니다.
print(df['A']) # 'A'라는 이름을 가진 열 출력
print(df.A) # 위와 동일
특정 행 선택
특정 행 추출과 특정 행 범위 추출은 사용하는 방식이 다릅니다. 특정 행 및 행 범위 추출을 위해서는 인덱스 슬라이싱 기법을 사용해야 합니다.
print(df[0:3]) # 인덱스 슬라이싱을 이용한 행 범위 출력
print(df['20130102' : '20130104']) # 특정 행 범위 출력
print(df['20130102' : '20130102']) # 특정 행 출력
.loc (이름을 이용한 데이터 선택)
라벨의 이름을 이용하여 선택할 수 있는 .loc
속성도 있습니다. 첫 번째 인덱스 값인 '2013-01-01'
에 해당하는 모든 컬럼의 값 가져오기와 같은 작업을 수행할 수 있습니다.
print(df.loc[dates[0]]) # dates[0]과 이름이 같은 데이터 출력
print(df.loc[:, ['A', 'B']]) # 전체 행 출력, 열이 'A' 또는 'B'인 데이터 출력
print(df.loc['20130102':'20130104',['A','B']]) # 행이 '20130102':'20130104',열 'A' 또는 'B'인 데이터 출력
.iloc (위치를 이용한 데이터 선택)
위치를 나타내는 인덱스 번호를 사용하여 데이터를 선택할 수 있습니다.
print(df.iloc[3]) # 3번째 행 출력
print(df.iloc[3:5, 0:2]) # 3:5 행, 0:2 열 출력
print(df.iloc[:, 1:3]) # 행 전체, 1:3열 출력
print(df.iloc[:, 1:3].name)
조건을 이용한 데이터 선택
특정한 행이나 열에 조건을 달아 만족하는 행이나 열만 선택하여 데이터를 추출할 수 있습니다.
isin()
필터링을 해야 하는 경우에 사용합니다.
print(df[df.A > 0]) # 'A'열에서 0보다 큰 값을 가진 행 출력
print(df[df > 0] # 전체 열에서 0이상의 값을 가진 행 출력
print(df['E'] = ['one', 'one','two','three','four','three']) # df에 'E'열 추가
print(df[df['E'].isin(['two', 'four'])]) # 'E'열에서 'two', 'four'을 가지고 있는 행 출력
'Machine Learning > Pandas' 카테고리의 다른 글
[Pandas] 데이터 확인하기 (2) | 2018.11.29 |
---|---|
[Pandas] 데이터 오브젝트 생성 (0) | 2018.11.29 |