반응형
17-01 하위분류반환 (xs)
DataFrame.xs(key, axis=0, level=None, drop_level=True)
개요
xs는 멀티인덱스 객체에 대해서 하위 분류를 출력하는 메서드입니다.
사용법
기본 사용법
※ 자세한 내용은 아래 예시를 참고 바랍니다.
df.xs(key, axis=0, level=None, drop_level=True)
key : 분류의 기준이 되는 값입니다. Multi Index의 값을 지정합니다.
axis : 하위 분류 출력의 기준이되는 축을 지정합니다.
level : 멀티인덱스에 키가 부분적으로 포함되어있는경우, 레벨 지정을 통해 분류할 수 있습니다.
drop_level : 기본값은 True로 필터링하는 값을 제외하고 하위 분류만 출력합니다. False면 필터링하는 값이 있는 분류까지 출력합니다.
반응형
예시
먼저 기본적인 사용법 예시를위하여 멀티인덱스 데이터를 만들어보겠습니다.
data = {'col1':[0,1,2,3,4], 'col2':[5,6,7,8,9],
'level0':['A','A','A','B','B'],
'level1':['X','X','Y','Y','Z'],
'level2':['a','a','b','c','a']}
df = pd.DataFrame(data=data)
df = df.set_index(['level0', 'level1', 'level2'])
print(df)
>>
col1 col2
level0 level1 level2
A X a 0 5
a 1 6
Y b 2 7
B Y c 3 8
Z a 4 9
기본적인 사용법
기본적으로 key값을 지정하면 해당 값의 하위 분류를 출력합니다.
print(df.xs(key='A'))
>>
col1 col2
level1 level2
X a 0 5
a 1 6
Y b 2 7
key값을 여러 값으로 지정할 수 도 있습니다.
print(df.xs(key=('A','X')))
>>
col1 col2
level2
a 0 5
a 1 6
level을 지정하여 하위분류를 진행할 수 있습니다.
print(df.xs(key='Y',level=1))
>>
col1 col2
level0 level2
A b 2 7
B c 3 8
drop_level=True로 할 경우 key값으로 지정된 레벨을 포함해서 줄력합니다.
print(df.xs(key='Y',level=1,drop_level=False))
>>
col1 col2
level0 level1 level2
A Y b 2 7
B Y c 3 8
반응형
'파이썬완전정복-Pandas DataFrame > 17. 멀티인덱스' 카테고리의 다른 글
Pandas DataFrame 17-05 인덱스 제거 (droplevel) (0) | 2022.03.13 |
---|---|
Pandas DataFrame 17-04 인덱스 순서변경 (swaplevel) (0) | 2022.03.13 |
Pandas DataFrame 17-03 언피벗화, 행의 열로 변환 (unstack) (0) | 2022.03.13 |
Pandas DataFrame 17-02 피벗화, 열의 인덱스화 (stack) (0) | 2022.03.13 |