DataFrame 데이터 보기 > Pandas for Data Analysis and Machine Learning

본문 바로가기
사이트 내 전체검색

회원로그인

올서베이넷
무료 온라인 설문 사이트
OVITII
웹 프레젠테이션 도구

Pandas for Data Analysis and Machine Learning

DataFrame 데이터 보기

페이지정보

글쓴이 관리자 조회 16,148 조회 날짜 20-02-28 17:56 / Update:20-03-05 14:47
댓글 0 댓글

SNS 공유

  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

내용

DataFrame 데이터 보기

 

 

출처 : https://pandas.pydata.org/pandas-docs/stable/reference/frame.html

 

 

데이터 생성은 아래의 코드와 같다.

import numpy as np

import pandas as pd

 

data = pd.read_excel('datasample.xlsx')

 

 

 

데이터 보기

 

 

1. 데이터 전체보기

 

print(data)

 

print(data.size)

 

결과

     번호  국어  영어  수학  과학
0    1번  70  56  65  45
1    2번  65  95  98  95
2    3번  80  65  54  68
3    4번  68  95  68  78
4    5번  95  85  75  95
5    6번  62  75  95  45
6    7번  35  65  84  95
7    8번  78  68  92  65
8    9번  56  94  34  84
9   10번  50  51  68  95
10  11번  64  67  95  68
11  12번  89  84  78  79
12  13번  65  92  95  45
13  14번  59  65  64  92
14  15번  32  78  95  68
15  16번  21  65  46  94

 

80

 

 

 

2. 데이터 columns 확인

 

data_columns = data.columns

print(data_columns )

 

결과

Index(['번호', '국어', '영어', '수학', '과학'], dtype='object')

 

column 길이를 아래와 같이 구한다.

columns_len = len(data_columns)

 

 

 

3. 데이터 values 확인

 

DataFrame의 values는 row를 순차적으로 numpy.ndarray 타입으로 반환한다.

data_values = data.values

print(data_values)

 

결과

[['1번' 70 56 65 45]
 ['2번' 65 95 98 95]
 ['3번' 80 65 54 68]
 ['4번' 68 95 68 78]
 ['5번' 95 85 75 95]
 ['6번' 62 75 95 45]
 ['7번' 35 65 84 95]
 ['8번' 78 68 92 65]
 ['9번' 56 94 34 84]
 ['10번' 50 51 68 95]
 ['11번' 64 67 95 68]
 ['12번' 89 84 78 79]
 ['13번' 65 92 95 45]
 ['14번' 59 65 64 92]
 ['15번' 32 78 95 68]
 ['16번' 21 65 46 94]]

 

row 길이를 아래와 같이 구한다.

rows_len = len(data_values)

 

 

 

4. 데이터 통계

 

data_describe = data.describe()

print(data_describe)

 

결과

              국어       영어         수학        과학
count  16.000000  16.0000  16.000000  16.00000
mean   61.812500  75.0000  75.375000  75.68750
std    20.030706  14.3527  19.643065  18.78907
min    21.000000  51.0000  34.000000  45.00000
25%    54.500000  65.0000  64.750000  67.25000
50%    64.500000  71.5000  76.500000  78.50000
75%    72.000000  86.7500  95.000000  94.25000
max    95.000000  95.0000  98.000000  95.00000

 

 

 

5. 데이터 head(), tail() 보기

 

head(n), tail(n) - n수만큼 보여준다. n = 5 default

data_head = data.head()

data_tail = data.tail()

print(data_head)

print(data_tail)

 

결과

   번호  국어  영어  수학  과학
0  1번  70  56  65  45
1  2번  65  95  98  95
2  3번  80  65  54  68
3  4번  68  95  68  78
4  5번  95  85  75  95

 

     번호  국어  영어  수학  과학
11  12번  89  84  78  79
12  13번  65  92  95  45
13  14번  59  65  64  92
14  15번  32  78  95  68
15  16번  21  65  46  94

 

 

 

6. 데이터 행과 열 바꾸기

 

행과 열을 바꾸어서 보여주는 속성값은 T이다. T도 DataFrame으로 반환되며 DataFrame.transpose()와 같은 결과를 반환한다.

 

data_T = data.T

print(data_T)

 

결과

      0   1   2   3   4   5   6   7   8    9   10   11   12   13   14   15
번호  1번  2번  3번  4번  5번  6번  7번  8번  9번  10번  11번  12번  13번  14번  15번  16번
국어  70  65  80  68  95  62  35  78  56   50   64   89   65   59   32   21
영어  56  95  65  95  85  75  65  68  94   51   67   84   92   65   78   65
수학  65  98  54  68  75  95  84  92  34   68   95   78   95   64   95   46
과학  45  95  68  78  95  45  95  65  84   95   68   79   45   92   68   94

 

 

 

7. 데이터 정렬하기

 

1) sort_index()

sort_index() 메서드는 axis와 ascending argument를 가진다.

axis = 0 : index 기준 정렬(default)

axis = 1 : columns 기준 정렬

 

ascending = True 오름차순(default)

ascending = False 내림차순

 

 

2) sort_value()

sort_value() 메서드는 by와 ascending argument를 가진다.

by = column name : 선택한 column 값을 기준으로 정렬

 

ascending = True 오름차순(default)

ascending = False 내림차순

 

예제 코드

data_sort_index = data.sort_index(axis=0, ascending=False)
 

data_sort_value = data.sort_values(by='영어', ascending=False)

 

결과

      번호  국어  영어  수학  과학
15  16번  21  65  46  94
14  15번  32  78  95  68
13  14번  59  65  64  92
12  13번  65  92  95  45
11  12번  89  84  78  79
10  11번  64  67  95  68
9   10번  50  51  68  95
8    9번  56  94  34  84
7    8번  78  68  92  65
6    7번  35  65  84  95
5    6번  62  75  95  45
4    5번  95  85  75  95
3    4번  68  95  68  78
2    3번  80  65  54  68
1    2번  65  95  98  95
0    1번  70  56  65  45

     번호  국어  영어  수학  과학
1    2번  65  95  98  95
3    4번  68  95  68  78
8    9번  56  94  34  84
12  13번  65  92  95  45
4    5번  95  85  75  95
11  12번  89  84  78  79
14  15번  32  78  95  68
5    6번  62  75  95  45
7    8번  78  68  92  65
10  11번  64  67  95  68
2    3번  80  65  54  68
6    7번  35  65  84  95
13  14번  59  65  64  92
15  16번  21  65  46  94
0    1번  70  56  65  45
9   10번  50  51  68  95

 

 

3) 순서 뒤집기

입력된 데이터의 순서를 거꾸로 뒤집는 방법은 역순서 슬라이싱을 사용하면 된다.

역순서 슬라이싱은 전체 값을 뒤에서 부터 받는 방법이다. ( ::-1 )

 

# columns의 역순 이용하기 - 본 강좌의 8번 참고

data[data.columns[::-1]]

 

# iloc의 역순 이용하기 - 본 강좌의 11번 참고

data.iloc[:, ::-1]


 

rdata = data[data.columns[::-1]]
print(rdata)

 

rdata = data.iloc[:, ::-1]
print(rdata)

 

결과

    과학  수학  영어  국어   번호
0   45  65  56  70   1번
1   95  98  95  65   2번
2   68  54  65  80   3번
3   78  68  95  68   4번
4   95  75  85  95   5번
5   45  95  75  62   6번
6   95  84  65  35   7번
7   65  92  68  78   8번
8   84  34  94  56   9번
9   95  68  51  50  10번
10  68  95  67  64  11번
11  79  78  84  89  12번
12  45  95  92  65  13번
13  92  64  65  59  14번
14  68  95  78  32  15번
15  94  46  65  21  16번


    과학  수학  영어  국어   번호
0   45  65  56  70   1번
1   95  98  95  65   2번
2   68  54  65  80   3번
3   78  68  95  68   4번
4   95  75  85  95   5번
5   45  95  75  62   6번
6   95  84  65  35   7번
7   65  92  68  78   8번
8   84  34  94  56   9번
9   95  68  51  50  10번
10  68  95  67  64  11번
11  79  78  84  89  12번
12  45  95  92  65  13번
13  92  64  65  59  14번
14  68  95  78  32  15번
15  94  46  65  21  16번

 

 

 

데이터 선택

 

 

8. column 데이터 선택

 

column은 column 이름을 indexing하여 얻을 수 있다. 또는 DataFrame.Column 형식으로도 얻을 수 있다.

여러개의 columns을 얻기 위해서는 리스트 안에 여러개의 column 이름을 입력하면 된다.

data_1 = data['국어']

data_2 = data.국어

 

data_3 = data[ ['국어','수학'] ]

 

print(data_1)

print(data_2)

print(data_3)

 

결과

0     70
1     65
2     80
3     68
4     95
5     62
6     35
7     78
8     56
9     50
10    64
11    89
12    65
13    59
14    32
15    21
Name: 국어, dtype: int64


0     70
1     65
2     80
3     68
4     95
5     62
6     35
7     78
8     56
9     50
10    64
11    89
12    65
13    59
14    32
15    21
Name: 국어, dtype: int64


    국어  수학
0   70  65
1   65  98
2   80  54
3   68  68
4   95  75
5   62  95
6   35  84
7   78  92
8   56  34
9   50  68
10  64  95
11  89  78
12  65  95
13  59  64
14  32  95
15  21  46

 

 

 

9. row 데이터 선택

 

rows는 index의 슬라이스를 통해 얻을 수 있다. index가 문자열로 되어 있더라도 적용된다.

data_1 = data[0:5]

print(data_1)

 

결과

   번호  국어  영어  수학  과학
0  1번  70  56  65  45
1  2번  65  95  98  95
2  3번  80  65  54  68
3  4번  68  95  68  78
4  5번  95  85  75  95

 

index가 문자열로 되어 있다면 아래처럼도 사용 가능하다.

data_1 = data['1번':'5번']

print(data_1)

 

결과

   번호  국어  영어  수학  과학
0  1번  70  56  65  45
1  2번  65  95  98  95
2  3번  80  65  54  68
3  4번  68  95  68  78
4  5번  95  85  75  95

 

 

 

10. 여러 rows, columns 데이터 선택

 

loc(rows, columns) 메서드는 여러개의 row와 column을 선택할 수 있다.

row는 index와 슬라이스로 설정 가능하고,

column은 list로 column 이름을 입력하면 된다. columns을 설정하지 않으면 모든 column들이 설정된다.

 

data_1 = data.loc[4, ['수학']]

data_2 = data.loc[0:3, ['국어','영어']]

 

print(data_1)

print(data_2)

 

결과

수학    75
Name: 4, dtype: object


   국어  영어
0  70  56
1  65  95
2  80  65
3  68  95     

 

만약 set_index()로 index가 문자열로 지정되어 있다면 

data.loc['4번':'6번',['국어','영어']] 형식으로 데이터를 선택할 수 있다.

index가 문자열로 되어 있으면 rows에 정수 index는 사용할 수 없다.

 

 

 

11. 원하는 범위 데이터 선택

 

iloc(rows, columns) 메서드는 여러개의 row와 column을 선택할 수 있다.

index가 문자열로 지정되어 있더라도 자체 정수 index를 사용한다.

rows 또는 columns에 콜론(:)만 넣으면 모든 행 또는 열을 반환한다. 파이썬의 슬라이싱 사용법과 동일

 

data_1 = data.iloc[0:3, 1:4]

data_2 = data.iloc[0:3, [1,3,4]]

data_3 = data.iloc[[3,5,7], [1,4]]

 

print(data_1)

print(data_2)

print(data_3)

 

결과

   국어  영어  수학
0  70  56  65
1  65  95  98
2  80  65  54


   국어  수학  과학
0  70  65  45
1  65  98  95
2  80  54  68


   국어  과학
3  68  78
5  62  45
7  78  65

 

 

 

12. 특정 데이터 선택

 

loc(row, column) = at(row, column)

iloc(row, column = iat(row, column)

 

loc과 at은 index가 문자열일 경우 row에 문자열 index를 입력해야 한다.

iloc과 iat은 문자열 index에 상관없이 row에 정수 index를 사용한다.

data_1 = data.loc[4, ['수학']]

data_2 = data.at[4, '수학']

 

data_3 = data.iloc[4, 3]

data_4 = data.iat[4, 3]

 

print("data_1", data_1)

print("data_2", data_2)

print("data_3", data_3)

print("data_4", data_4)

 

결과

data_1 수학    75
Name: 4, dtype: object
data_2 75
data_3 75
data_4 75

 

 

 

13. 조건을 이용한 데이터 선택

 

조건문을 이용하여 데이터를 선택할 수 있다. 

만약 국어 점수가 50점 이상인 사람들만 선택하고 싶다면 

data[data.국어 >= 50] 또는 data[data['국어'] >= 50]로 사용할 수 있다.

 

조건은 ( ) 안에 넣어서 여러 개를 동시에 사용할 수 있다.

국어 점수가 50, 수학 점수가 90점 이상인 사람들을 선택하려면 아래와 같이 한다.

data[(data.국어 >= 50) & (data.수학 >=90)]

 

조건을 And로 연결하고 싶으면 &

조건을 Or로 연결하고 싶으면 | 로 연결한다.

 

data_1 = data[data.국어 > 50]

data_2 = data[data.수학 > 90]

 

print(data_1)

print(data_2)

 

결과

     번호  국어  영어  수학  과학
0    1번  70  56  65  45
1    2번  65  95  98  95
2    3번  80  65  54  68
3    4번  68  95  68  78
4    5번  95  85  75  95
5    6번  62  75  95  45
7    8번  78  68  92  65
8    9번  56  94  34  84
10  11번  64  67  95  68
11  12번  89  84  78  79
12  13번  65  92  95  45
13  14번  59  65  64  92


     번호  국어  영어  수학  과학
1    2번  65  95  98  95
5    6번  62  75  95  45
7    8번  78  68  92  65
10  11번  64  67  95  68
12  13번  65  92  95  45
14  15번  32  78  95  68     

 

 

 

14. 필터를 이용한 데이터 선택

 

isin() 메서드 사용, 특정 칼럼에 문자열이 들어있는지 검사

 

새로운 column을 추가한다.

data['group'] = ['A','B','C','A','B','C','A','B','C','A','B','C','A','B','C','A']

 

isin을 이용한 조건문도 & |를 이용하여 여러 개를 동시에 사용할 수 있다.

 

data['group'] = ['A','B','C','A','B','C','A','B','C','A','B','C','A','B','C','A']

data_1 = data[data['group'].isin(['A','B'])]

 

print(data_1)

 

결과

     번호  국어  영어  수학  과학 group
0    1번  70  56  65  45     A
1    2번  65  95  98  95     B
3    4번  68  95  68  78     A
4    5번  95  85  75  95     B
6    7번  35  65  84  95     A
7    8번  78  68  92  65     B
9   10번  50  51  68  95     A
10  11번  64  67  95  68     B
12  13번  65  92  95  45     A
13  14번  59  65  64  92     B
15  16번  21  65  46  94     A

댓글목록 sfs

총 7 건 , 1 페이지
게시물 검색
Pandas for Data Analysis and Machine Learning 목록
번호 제목 글쓴이 조회 날짜
1 관리자 27610 12-13
2 관리자 23363 12-20
3 관리자 22881 02-28
열람중 관리자 16149 02-28
5 관리자 16514 02-29
6 관리자 17102 03-06
7 관리자 28489 03-06
GNUBOARD_M
Copyright © JBMPA.com All rights reserved.