Appia의 IT세상

파이썬[Python] Pandas, DataFrame 기본 메소드 기능 본문

Python/Python Pandas

파이썬[Python] Pandas, DataFrame 기본 메소드 기능

Appia 2020. 3. 25. 07:50
반응형

앞서 포스팅에서는 Series의 기본 메소드에 대해서 소개를 해봤습니다. 1차원이다 보니, 실제로 Series를 많이 사용하지는 않습니다. 하지만, Pandas에서는 DataFrame은 반드시 필요로 합니다. 그래서 이번 포스팅에서는 앞서 포스팅과 유사하게 DataFrame의 기본 메소드와 관련된 부분에 대해서 소개를 해보고자 합니다. 

 

혹시 DataFrame에 대해서 생성 및 개념에 대해서 놓치셨다면 다음 링크를 참조해주시길 바랍니다. 

파이썬[Python] Pandas란, Pandas DataFrame

 

파이썬[Python] Pandas란, Pandas DataFrame

앞서 포스팅에서는 Pandas을 설치 하는 방법과 Anaconda를 설치하는 방법에 대해서 살펴봤습니다. 실제 Pandas에 대해서 이야기를 하고자 가장 기초적인 설치에 대해서 포스팅을 해봤습니다. 그러면, 이번 포스팅..

appia.tistory.com

 

우선 기본 제공하는 메소드(Method)는 간단히 나열하면 다음과 같습니다.  

Method Description(DataFrame)
axes row labels/column labels반환
dtype 객체의 데이터 타입 반환
empty DataFrame이 비었는 지 확인, 비었을 경우 - True
ndim 객체 dimension 반환
size DataFrame 객체 갯수 반환
values 데이터를 ndarray 형태로 반환
head() 처음 n열 반환
tail() 뒤에서 n열들 반환 
shape() DataFrame의 구조 반환
T(Transpose) 행열 교환

위의 부분을 토대로 하나씩 예시를 들면 조금 더 상세하게 이야기를 해보고자 합니다. 

 

 

axes 

row label과 column의 label을 출력해줍니다. 그럼 다음 예시를 한번 살펴보겠습니다. 

example)

import pandas as pd

# Series 생성

ds = {'Name': pd.Series(['Choi', 'Kim', 'Lee', 'Park']),

      'Age': pd.Series([25, 26, 25, 23]),

      'Rating': pd.Series([2.56, 3.20, 4.6, 3.8])}

# DataFrame 생성

df = pd.DataFrame(ds)

print(df)  # 출력 DataFrame

print("DataFrame axes : ")

print(df.axes)  # 출력 axes

result) 

   Name  Age  Rating
   
0  Choi   25    2.56

1   Kim   26    3.20

2   Lee   25    4.60

3  Park   23    3.80

DataFrame axes : 

[RangeIndex(start=0, stop=4, step=1), Index(['Name', 'Age', 'Rating'], dtype='object')]

코드를 보시면 실제 Row/Column 인덱스에 대해서 명시를 하고 있습니다. 단, Row label같은 경우는 컴팩트한 형태로 표시를 해줍니다. ( RangeIndex(start=0, stop=4, steop1),...)

 

empty 

empty 메소드는 매우 간단합니다. 즉 DataFrame이 비웠는지에 대해 리턴을 해줍니다. 기본 빈 DataFrame을 바탕으로 진행할 경우 True가 나옵니다. 그럼 다음 예시를 한번 살펴보겠습니다. 

example)

import pandas as pd

# Series 생성

ds = {'Name': pd.Series(['Choi', 'Kim', 'Lee', 'Park']),

      'Age': pd.Series([25, 26, 25, 23]),

      'Rating': pd.Series([2.56, 3.20, 4.6, 3.8])}

# DataFrame 생성

df = pd.DataFrame(ds)

print(df.empty)

result) 

False

만약 위의 DataFrame이 비웠다면 True가 리턴 되었을 것입니다. 

 

ndim/shape

ndim은 몇차원인지에 대해서 리턴을 해줍니다. 기본적으로 DataFrame의 경우 2차원이므로 2를 리턴해줍니다. 그리고 shape의 경우 Row가 몇개이고, Column이 몇개인지에 대해서 명시를 해줍니다. 그럼 다음 예시를 한번 살펴보겠습니다.

example) 

import pandas as pd

# Series 생성

ds = {'Name': pd.Series(['Choi', 'Kim', 'Lee', 'Park']),

      'Age': pd.Series([25, 26, 25, 23]),

      'Rating': pd.Series([2.56, 3.20, 4.6, 3.8])}

# DataFrame 생성

df = pd.DataFrame(ds)

print(df)

print("ndim : ")

print(df.ndim)

print("shape : ")

result) 

   Name  Age  Rating
   
0  Choi   25    2.56

1   Kim   26    3.20

2   Lee   25    4.60

3  Park   23    3.80

ndim : 

2

shape : 

(4, 3)

 

 

 

앞서서, 말을 했던 바와 같이 ndim의 경우 DataFrame은 Row x Column형태이므로 2가 리턴됩니다. Shape의 경우 위에서 보이는 바와 같이 Row는 4개, Column은 3개로 구성됩니다. 따라서 4,3이 리턴됩니다. 

 

size/values 

size의 경우 인덱스를 제외한 각 항목에 대한 총 갯수의 합을 말해줍니다. 즉, 다음 보이는 표의 빨간색 부분에 갯수를 카운트 해주는 것입니다. 

Value의 경우 row기반으로 리스트로 값만 출력을 해줍니다. (Index는 제외) 

DataFrame구조

그럼 다음 예시를 한번 살펴보겠습니다. 

example) 

import pandas as pd

# Series 생성

ds = {'Name': pd.Series(['Choi', 'Kim', 'Lee', 'Park']),

      'Age': pd.Series([25, 26, 25, 23]),

      'Rating': pd.Series([2.56, 3.20, 4.6, 3.8])}

# DataFrame 생성

df = pd.DataFrame(ds)

print("size : ")

print(df.size)

print("values : ")

print(df.values)

result) 

size : 

12

values : 

[['Choi' 25 2.56]

 ['Kim' 26 3.2]
 
 ['Lee' 25 4.6]
 
 ['Park' 23 3.8]]

size는 4x3이기 때문에 12가 나옵니다. 그리고 values에서는 DataFrame에서 Index를 제외하고 row기반으로 값만 출력을 해주고 있습니다. 

 

head/tail

head/tail은 DataFrame에서 부분적으로 출력할 때 합니다. head(a)경우 a번째 열까지 출력합니다. tail(a)은 경우는 a번째 열부터 끝까지 출력합니다. 그럼 다음 예시를 한번 살펴보겠습니다. 

 

example) 

import pandas as pd

# Series 생성

ds = {'Name': pd.Series(['Choi', 'Kim', 'Lee', 'Park']),

      'Age': pd.Series([25, 26, 25, 23]),

      'Rating': pd.Series([2.56, 3.20, 4.6, 3.8])}

# DataFrame 생성

df = pd.DataFrame(ds)

print("head(3) : ")

print(df.head(3))

print("tail(2) : ")

print(df.tail(2))

result) 

head(3) : 

   Name  Age  Rating
   
0  Choi   25    2.56

1   Kim   26    3.20

2   Lee   25    4.60

tail(2) : 

   Name  Age  Rating
   
2   Lee   25     4.6

3  Park   23     3.8

 

T(Transpose)

DataFrame의 열과 행을 바꾸어주는 기능입니다. 그럼 바로 예시를 한번 보겠습니다. 

example)

import pandas as pd

# Series 생성

ds = {'Name': pd.Series(['Choi', 'Kim', 'Lee', 'Park']),

      'Age': pd.Series([25, 26, 25, 23]),

      'Rating': pd.Series([2.56, 3.20, 4.6, 3.8])}

# DataFrame 생성

df = pd.DataFrame(ds)

print(df.T)

 

result) 

           0    1    2     3
           
Name    Choi  Kim  Lee  Park

Age       25   26   25    23

Rating  2.56  3.2  4.6   3.8

위에서 보는 바와같이 열과 행이 바뀐 것이 보이시죠? 이 기능은 생각보다 많이 사용이 되어집니다. 

 

이번 포스팅에서 DataFrame에 대한 기본 메소등 기능에 대해서 살펴봤습니다. 이 부분에 대해서 생각보다 어렵지 않기 때문에 잘 익혀두시면 도움이 될 것이라고 생각합니다. 

 

혹 궁금하시거나 문의 사항이 있으면 언제든지 댓글 및 방명록에 글 남겨 주시길 바랍니다. 감사합니다. 

반응형
Comments