Learning & Reasoning/Python - Scikit-learn_Tensorflow

Python Pandas 단편 (notes)

이현봉 2016. 9. 29. 14:58

Pandas 의 Series/DataFrame 선택(& slice) 시 loc, iloc, ix 메소드 활용 

Pandas의 Series 와 DataFrame의 element, row, column들을 선택하는 방법이 여러 가지.  

- 기본 Python list와 같은 sequence 타입 경우와 헷갈리기도 하고, 또 R과 헷갈리기도 함.

- DataFrame 경우 가장 간단히 한 개의 column을 선택하려면

DataFrame_name.column_name 이 유용

- 다른 경우에는 가능한 일관되게 iloc(), loc(), ix() 메소드들 씀이 좋음.  이 방법들은 R에서의 selection과도 흡사.  

-  iloc(), loc(), ix() 의 사용법 : http://stackoverflow.com/questions/31593201/pandas-iloc-vs-ix-vs-loc-explanation

   간단히 : 

   iloc() 은 row나 column 을 지정할 때 위치에 따라 0, 1, 2, ....   integer 숫자로 지정

   loc()은 row나 column 을 지정할 때 index의 label에 의해

   ix() 는 편리하지만 조심해야. 기본적으로 loc()같이 동작하나 만약 label이 없으면 iloc()으로 동작. 위 url 참고


* 주의: Pandas에서 integer로 된 index도 label로 해석할 수 있음 

 - iloc() 은 integer 위치로 indexing하기에 df_name[[0:5],:] 같이 slice 하면 기본 python같이 0, 1, 2, 3, 4 번째 row를 정한 것.  반면,

- loc()을 이용해 integer로 된 index를 [0:5, :] 같이 slice하면  0, 1, 2, 3, 4, 5 label의 row까지 선택한 것.