우공이산(愚公移山)

자신과 세상을 바꾸는 것은 머리좋고 가진것이 많은 사람이 아니라 결코 포기하지 않는 의지로 꾸준히 노력해 가는 사람이다. 오늘이 쌓여 내일을 만들고, 내일이 쌓여 인생을 만든다.

Data Science

[Data Science 기초][2] DataFrame

보노보노 2022. 11. 28. 22:02

이전글 : [Data Science 기초] Series

 

[Data Science 기초] Series

Series란? 데이터 처리를 위한 자료구조 1. pandas 자료구조 pandas는 고수준의 자료 구조와 Python을 통한 빠르고 쉬운 데이터분석 도구를 포함하고 있다. 명시적으로 축의 이름에 따라 데이터를 정력

atozcode.tistory.com

 

이번 시간에는 Series에 이어 DataFrame에 대해서 알아보자!

 

1. DataFrame이란?

  • Series들이 결합된 형태
  • Series들의 이름이라고 할 수 있는 "Column"이라는 정보가 하나 더 들어간다.
  • 각 Series(열)에 따라 Data Type이 다를 수 있다.
  • 특성이 기본적으로 Series우선 즉, 위에서 아래 방향이다. 

 

2. DataFrame 생성

그렇다면, 지금부터 DataFrame을 생성하는 다양한 방법에 대해서 알아보자.

기본적으로 pd.DataFrame() 함수를 통해 생성

데이터를 주고 "index"와 "columns"를 선언하는 형태 ( 데이터와 정보간의 개수 또는 짝이 맞는지 주의 )

데이터의 형태는 Matrix형태이고, 각 행의 데이터는 리스트 또는 튜플로 작성할 수 있다. 

그리고, 테스트를 위해 혼합한 형태도 써봤는데.. 된다. 

 

그리고 위와 같이, 딕셔너리 형태로도 데이터를 줄 수 있으며 Columns명을 Key로 해서 Value값에 Series 형태의 데이터를 줄 수 있다. 

 

또한, 기존에 딕셔너리 형태로 선언한 데이터에서 columns을 명시해서 가져올 때는  columns값이 중요하다. 

즉, 명시적으로 주는 columns 정보를 이용해 딕셔너리의 key값과 비교하여 데이터를 가져온다. 

 

위와 비교하여, columns정보에 따른 결과 참고 : 잘못된 column을 명시하게 된다면 선언된 ddata에서 Key값을 이용해 데이터를 찾을 수 없으므로 NaN으로 표기된다. 

 

3. DataFrame에서 Data 접근

앞서 말한것과 같이 Pandas DataFrame의 경우 기본적으로 위에서 아래 방향 컬럼 별로 따로 때서 보는것이 일반적이다.

따라서, 데이터 프레임에서 하나의 Series를 불러올 때는 column명을 이용하면 쉽게 불러올 수 있다.

 

그러나 행으로 여러 시리즈에 걸쳐있는 데이터를 불려오는것은 조금 부자연 스럽다. 이때는 위와 동일하게 index값으로 쉽게 불러오지는 못하고 loc 또는 iloc를 주어 행데이터를 불러올 수 있다. 

 

또한, 특정 행 또는 열의 데이터를 가져오기(선발) 위해서는 각 Index 또는 Columns 값들을 리스트로 넘겨주면 된다.

 

추출한 데이터에서 접근하는 방법은 기존과 동일하며 응용하면 된다. 

 

위에서는 index명을 이용하여 필요한 데이터를 추출했으나, int형 숫자를 이용해 접근할 수 있다.

 

그리고 index의 경우 시작과 끝의 범위를 지정해서 데이터를 가져올 수 있다. 즉, slice할 수 있다. 

 

여기서 조금 주의해야할 점은 loc를 이용해 시작과 끝나는 index명을 입력할 때와 iloc를 이용해 index를 입력할 때, 끝나는 index를 포함하느냐 포함하지 않고 그 전까지 Slicing하는가의 차이가 있으니 조심.

  • frame4.loc["one":"three"] 의 경우 "three"인덱스 포함
  • frame4.iloc[1:3] 의 경우 실제 1~2 행을 슬라이싱함.

 

추가로 .loc 또는 .iloc를 통해 index로 접근을 할 때, 아래와 같이 columns도 Slicing할 수 있다. 

 

즉, 이러한 특성을 통해 컬럼(만)도 Slicing할 수 있다.

 

지금까지 Pandas DataFrame에 대해서 알아보고 DataFrame을 선언하는 방법과 DataFrame에 접근하는 방법에 대해서 알아 보았다. 실무에서도 커다란 DataFrame을 내가 원하는 형태로 필터링(추출)하면 여러모로 사용하기 용이하게 사용할 수 있으므로 정리를 잘해두면 좋겠다. 

 

 

다음글 :[Data Science 기초] lambda 함수와 apply 함수

 

[Data Science 기초] lambda 함수와 apply 함수

 

atozcode.tistory.com