일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파워포인트
- win32com
- 안드로이드
- Windows10
- python
- 비주얼베이직
- pandas
- 파이썬GUI
- html
- 윈도우11
- 깃
- 엑셀
- python3
- Outlook
- 오피스
- 아웃룩
- office
- 파이썬3
- pythongui
- pyqt5
- matlab
- Windows11
- 윈도우10
- windows
- 문자열
- Excel
- 파이썬
- Android
- git
- VBA
Appia의 IT세상
파이썬[Python] Pandas, DataFrame 기본 메소드 기능 본문
앞서 포스팅에서는 Series의 기본 메소드에 대해서 소개를 해봤습니다. 1차원이다 보니, 실제로 Series를 많이 사용하지는 않습니다. 하지만, Pandas에서는 DataFrame은 반드시 필요로 합니다. 그래서 이번 포스팅에서는 앞서 포스팅과 유사하게 DataFrame의 기본 메소드와 관련된 부분에 대해서 소개를 해보고자 합니다.
혹시 DataFrame에 대해서 생성 및 개념에 대해서 놓치셨다면 다음 링크를 참조해주시길 바랍니다.
파이썬[Python] Pandas란, Pandas DataFrame
우선 기본 제공하는 메소드(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는 제외)
그럼 다음 예시를 한번 살펴보겠습니다.
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에 대한 기본 메소등 기능에 대해서 살펴봤습니다. 이 부분에 대해서 생각보다 어렵지 않기 때문에 잘 익혀두시면 도움이 될 것이라고 생각합니다.
혹 궁금하시거나 문의 사항이 있으면 언제든지 댓글 및 방명록에 글 남겨 주시길 바랍니다. 감사합니다.
'Python > Python Pandas' 카테고리의 다른 글
파이썬[Python] Pandas, Reindex - Row/Column Label(Index)구조 및 이름 변경하기 (0) | 2020.03.29 |
---|---|
파이썬[Python] Pandas, 기술 통계[descriptive statistics] 메소드 (0) | 2020.03.27 |
파이썬[Python] Pandas, Series 기본 메소드 기능 (0) | 2020.03.24 |
파이썬[Python] Pandas, Pandas Series생성 및 활용하기 (0) | 2020.03.21 |
파이썬[Python] Pandas란, Pandas DataFrame (0) | 2020.03.06 |