본문 바로가기
Programming/Python

[Python 기초] 데이터 객체 생성 및 처리 관련 구문

by Kanii 2022. 4. 14.
반응형

이번 포스팅에서는 데이터 생성 및 처리에 관련한 Python 기초 구문들을 살펴보겠다.

 

* 사용 환경

필자는 Python 프로그래밍을 위해 Jupyter notebook을 사용하고있다.

(주변에 파이썬을 자주 사용하시는 분들은 Visual studio를 많이 사용하시던데,, 필자는 익숙한게 Jupyter notebook이라 그냥 사용 중..ㅎㅎ)


* 파이썬 라이브러리란?

파이썬에는 R의 pacakge와 마찬가지로 다양하고 유용한 함수들을 포함하고 있는 라이브러리가 존재한다.

특정 라이브러리는 import 구문을 사용하여 불러 올 수 있으며, 라이브러리 내장 함수를 사용하고 싶을 경우, 

라이브러리명.함수명()으로 사용하면 된다.

 

예를 들어, 라이브러리 numpy 안에 있는 mean()함수를 사용하여 주어진 데이터 x에 대한 평균을 구해보자.

또한, import 과정에서 as 구문을 사용하게 되면 라이브러리의 약어를 지정할 수 있으며, 후에 라이브러리 내장 함수를 호출할 때, 약어를 통한 호출이 가능해진다.


1. 위킹 디렉토리 확인 및 변경(Working Directory)

 

os 라이브러리를 사용하면 쉽게 워킹 디렉토리 확인 및 변경을 할 수 있다.


2. 데이터 객체 종류와 생성

 

Python은 정말 다양한 데이터의 객체 종류를 가지고있다.

boolean, dictionary, tuple, bytes 등등...

모든 데이터 객체들을 이해하기 쉽게 설명할 수 있으면 좋겠지만,, 필자도 사용해보지 않은 객체 타입이 많고,, 설명을 하기엔 아직 실력이 부족하다....

 

때문에, 이번엔 데이터 분석에서 가장 많이 사용되는 list, array, data frame 3개에 대해서만 포스팅 해보려고한다.

 

첫번째로 살펴볼 데이터 객체는 리스트(list)이다. 리스트를 생성하기 위해서는 list() 함수를 사용하거나, 혹은 대괄호 [ ]를 사용할 수 있다. 

생성한 리스트에 원소를 추가하고 싶을땐, 리스트이름.append(원소) 구문을 사용하면 된다.

생성된 객체의 객체 타입을 살펴보고 싶을 땐, type() 함수를 사용하면 된다.

두번째로 살펴볼 데이터 객체는 배열(Array)이다.

파이썬에서는 라이브러리 numpy 안에 함수 array를 사용하여 배열을 생성 할 수 있으며, 1차원 배열부터 N 차원 배열까지 생성 할 수 있다.

 

넘파이 배열을 생성할 때, 차원의 구분은 대괄호 []를 통해 이루어진다.

우선 간단한 1차원 배열부터 생성해보자.

넘파이 배열의 객체 타입을 체크해보면 numpy.ndarray라고 나타나는데, ndarray는 'N-dimensional Array'의 약자이다.

 

다음 예제로는 다음과 같은 2차원 배열을 생성해보자.

1 2 3 4
5 6 7 8
9 10 11 12

코드를 살펴보면, 첫번째 대괄호 [ ]안에, 3개의 행이 각각 1차원 array로 묶여서 들어가 있는 것을 알 수 있다.

-> 1차원 배열들을 한번 더 대괄호 []로 묶어서 2차원 배열 생성

-> 그렇다면 3차원 배열은?

    -> 2차원 배열들을 한번 더 묶어주면 됨!

3차원 배열의 차원을 보면 (2,3,3)인 것을 알 수 있는데, 3*3인 2차원 배열을 2개 가지고 있는 배열이라는 뜻이다.

 

만약 n차원 배열을 생성했지만, 해당 배열의 차원 수를 늘리고 싶다면 np.newaxis라는 구문을 사용하면 된다.

1차원 배열로 예를 들어보자, 1차원 배열의 차원은 다음과 같이 나타난다.

2차원에 해당하는 부분이 비어있는 것을 알 수 있는데, 저 1차원 배열을 np.newaxis를 사용해 (3,1)인 2차원 배열로 나타내보자.

마지막으로 살펴볼 데이터 객체는 데이터 프레임(data frame)이다.

파이썬에서는 pandas라는 라이브러리를 사용해 쉽게 데이터 프레임을 다룰 수 있다.

여기서는 pandas 라이브러리를 사용하여, 위와 같은 데이터 프레임을 생성하고 불러오는 방법을 살펴보겠다.

 

파이썬에서는 pd.DataFrame() 구문을 사용하여, 데이터 프레임을 생성 할 수 있다.

데이터 프레임을 생성 할 때, 변수명 : [values...]의 형태로 입력하며, 모든 변수를 대괄호 { }로 묶어 주면 데이터 프레임을 생성 할 수 있다.

 

데이터를 불러오는 방법은 더욱 간단하다.

pd.read_csv( "경로\파일명.확장자명", sep = "구분자"
                  header = None, # 변수 명이 파일에 포함되어있지 않은 경우 None
                  names = [변수 명] )

3. 데이터 인덱싱(Indexing), 선택하기

 

파이썬은 R과 달리 행/열의 인덱스 번호가 0부터 시작하며, 차원 구분은 R과 동일하게 ','를 통해 수행한다.

위 코드를 살펴보면, list1이라는 리스트 객체의 첫번째 원소를 선택하기 위해 list1[0]이라는 인덱스 번호를 사용한 것을 알 수 있다.

 

R과 파이썬의 또 다른 차이점은, 2차원 이상의 배열 혹은 데이터프레임에서 행 전체를 선택할 때, array[ r , ]이 아닌, array[ r , : ]로 콜론을 사용하여 전체 선택을 해주어야한다.

데이터프레임에서는 데이터를 추출하려면 pandas에서 제공하는 함수 .loc() 혹은 .iloc()을 사용해야한다.

.loc() 데이터의 라벨(Label)과 인덱스명(index)로 추출할 수 있는 방법
.iloc() 데이터의 행/열 번호를 사용하여 추출할 수 있는 방법 - String을 input으로 받을 수 없다.

이 두 방법을 사용하여 아래의 데이터 프레임(index_df)에서 행/열/원소를 추출하는 방법을 알아보자.

물론, python에서도 콜론(:)을 사용하여 여러개의 행 또는 열을 선택할 수 있다.

만약, df.iloc[a:b]라는 함수를 사용하였다면 a행부터 b-1번째 행까지 출력된다.


5. 변수명 변경 (Rename)

 

데이터 프레임의 변수/인덱스명 변경은 pandas library 안에 있는 rename이라는 함수를 사용하여 진행 할 수 있다.


끝!


>> SAS 버전

2022.03.23 - [Programming/SAS] - [SAS 기초] 데이터 생성과 처리 관련 구문

 

[SAS 기초] 데이터 생성과 처리 관련 구문

이번 포스팅에서는 SAS 기초 문법을 살펴보겠다. - 앞으로는 동일한 주제에 대해서 SAS, R, Python 버전으로 모두 포스팅 하려고 합니다. 3가지 버전으로 모두 포스팅이 완료되는대로 글 마지막에 링

harang3418.tistory.com

>> R 버전

2022.03.25 - [Programming/R] - [R 기초] 데이터 객체 생성 및 처리 관련 구문

 

[R 기초] 데이터 객체 생성 및 처리 관련 구문

이번 포스팅에서는 '데이터 객체 생성 및 처리 관련 구문'에 대한 R 기초 문법을 살펴보겠다. - 동일한 주제에 대한 SAS,Python 포스팅을 보고싶으시다면 아래 링크를 참고해주세요- * 사용 환경 필

harang3418.tistory.com

 

반응형

댓글