호기심 많은 분석가

[Python] Intersection에 대해 알아보자(set, index) 본문

Coding/Machine Learning & Python

[Python] Intersection에 대해 알아보자(set, index)

DA Hun 2021. 6. 25. 13:13

 오늘은 친구의 흥미로운 질문을 다뤄보고자 한다. 이 친구의 사고 방식은 참 배울 점이 많은데, DataFrame을 groupby 시켰을 때는 list의 형태인지, index의 type은 무엇인지, 작업하면서 한번도 의문을 가져본 적 없는 것들을 물어봐서 허를 찔린다. 나도 이런 의문을 항상 품으면서 살아야할텐데, 오늘은 그 중 새로 알게 된 사실에 대해 이야기 해보고자 한다.

Intersection

 바로 intersection인데, 해석하면 교집합으로 두 그룹 사이에 동시에 존재하는 원소들을 의미한다.

Python에서 이 친구를 사용하기 위해서는 유의해야할 점이 한 가지 존재하는데, list형태에서는 작동하지 않아 반드시 set의 형태로 변환해줘야한다는 점이다. 아래와 같이 실행되는 것을 확인할 수 있다.

list에서는 불가능
set으로 변환

 그래서 항상 Series나 Index등 다른 데이터를 다룰 때 set으로 변환하여 사용해줬는데, index의 경우에는 set을 씌워주지 않더라도 index 자체로 intersection이 적용됨을 알 수 있었다. ndex가 unique하기 때문에 그런가 했는데, 맨 밑의 사진을 보면 그렇지는 않은 것 같고, pandas.Index에 intersection 함수가 구현되어 있어서 그런듯 하다.

index intersection