DataFrame 데이터 보기
페이지정보
내용
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) |
결과
번호 국어 영어 수학 과학
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] |
row 길이를 아래와 같이 구한다.
rows_len = len(data_values)
4. 데이터 통계
data_describe = data.describe() print(data_describe) |
결과
국어 영어 수학 과학 |
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) |
결과
번호 국어 영어 수학 과학
번호 국어 영어 수학 과학 |
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 |
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) |
결과
번호 국어 영어 수학 과학 |
3) 순서 뒤집기
입력된 데이터의 순서를 거꾸로 뒤집는 방법은 역순서 슬라이싱을 사용하면 된다.
역순서 슬라이싱은 전체 값을 뒤에서 부터 받는 방법이다. ( ::-1 )
# columns의 역순 이용하기 - 본 강좌의 8번 참고
data[data.columns[::-1]]
# iloc의 역순 이용하기 - 본 강좌의 11번 참고
data.iloc[:, ::-1]
rdata = data[data.columns[::-1]]
rdata = data.iloc[:, ::-1] |
결과
과학 수학 영어 국어 번호
|
데이터 선택
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
|
9. row 데이터 선택
rows는 index의 슬라이스를 통해 얻을 수 있다. index가 문자열로 되어 있더라도 적용된다.
data_1 = data[0:5] print(data_1) |
결과
번호 국어 영어 수학 과학 |
index가 문자열로 되어 있다면 아래처럼도 사용 가능하다.
data_1 = data['1번':'5번'] print(data_1) |
결과
번호 국어 영어 수학 과학 |
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
|
만약 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) |
결과
국어 영어 수학
|
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 |
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) |
결과
번호 국어 영어 수학 과학
|
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 |