22.02.22 회고

김영태·2022년 2월 22일

pandas를 사용할 때 .loc 와 .iloc를 사용할 때 차이가 있다고 합니다.
loc는 인덱스를 기준으로 행을 읽고, iloc는 행번호를 기준으로 읽는다고 합니다.

https://devpouch.tistory.com/47
이곳에서 잘 설명되어있으니 읽어보시는 것을 추천드립니다.

예를들어

0
1
2
3
4

가 있다고 할 때, 인덱스와 행번호는 동일한 값을 지니게 됩니다.

다만 아래와같이

0
1
3
4

2를 잘랐을 경우 인덱스는 0,1,3,4만 남게됩니다.
반면, 행번호는 0 1 2 3이 그대로 남아있게 됩니다.
특정 행의 값이 변했을 때 그 값을 유지한다면 인덱스이고, 그와 연관된 행들이 변하게 된다면 행번호라고 생각하시면 될 듯 합니다.


특정 값을 셀 때 .count와 .sum 두 가지의 방법이 있습니다.
.count가 쓰인 것을 보고 .sum을 써보는게 어떨까 싶어 실험을 해봤는데, 컴퓨터가 너무 힘들어하네요.
수가 너무 많으면 sum대신 count를 써야할 것 같습니다.


Compressed sparse row (CSR)에서 indptr을 구하는 방법을 몰라서 한참을 헤맸습니다.
블로그 글을 대부분 찾아봐도 만족할만한 글이 없었는데, https://ko.wikipedia.org/wiki/%ED%9D%AC%EC%86%8C%ED%96%89%EB%A0%AC
이곳에서 답에대한 실마리를 얻을 수 있었습니다.

간단히 요약하자면 indptr의 첫번째 요소는 처음 0이아닌 값이 오는 부분이고, 다음숫자는 첫번째 행에대한 누적값, 다음숫자는 두번째 행에 대한 누적값...... 을 하다가 마지막에 누적값이 요소갯수가 된다면 거기서 종료. 하는 방식으로 계산하면 됩니다.

이렇게 쉬운걸 왜 다들 어렵게 설명해두신건지 ㅋㅋㅋ.... 물론 저도 자세히 설명드릴 자신이 없습니다. 위키가 정말 정리가 잘 되어있네요

0개의 댓글