본문 바로가기
Development/Python

Pandas

by 곽동현 이스텔리앙 2018. 6. 29.

Pandas 팁

데이터 분석을 하다보면 numpy보다 pandas가 더 편한 경우가 종종있다. 물론 연산 속도는 numpy가 훨씬 빠르다.

1. SettingWithCopyWarning 해결하기

Pandas 에서 특정 row의 특정 column에 value를 집어 넣을 때 흔히 발생하는 에러이다. 이는 문법적으로 iloc함수에 대한 python에서 해석이 불분명하기 때문에 발생한다.

Indexing and selecting data - pandas 0.25.0 documentation

해결 방법은 매우 간단하다. 아래와 같이 iloc대신 loc를 사용하면 된다.

How to deal with SettingWithCopyWarning in Pandas?




# Groupby

특정 column을 지정하고, 해당 column을 일종의 ID로 생각한다. 그래서 여기에 등장한 unique ID의 종류(N개) 만큼으로 데이터의 row를 쪼개서 N개의 table로 나눈다, 이 N개 table의 row 길이를 모두 더하면 원래의 table과 동일하다.



# Partial sum for given index

이를 for문 없이 구현하는 방법은 두가지이다.

1. 해당 column을 우선 cum sum하고, 주어진 index의 cumsum값만 가져온다음 이를 diff


2. 1111112222333333 이런식으로 index 정보를 그룹 id 처럼 해석해서 모든 row마다 레이블링 컬럼을 추가한다음, groupby하면 n개의 table로 쪼개짐. 이 n개 table을 각각 sum하면됨

댓글0