일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- pandas filter
- 머신러닝
- Folium
- Machine Learning
- 통계학
- 등차수열
- 리스트
- maplotlib
- 재귀함수
- MacOS
- SQL
- python
- tree.fit
- DataFrame
- plt
- 조합
- INSERT
- 자료구조
- numpy
- 스터디노트
- pandas 메소드
- 기계학습
- 순열
- pandas
- 등비수열
- matplotlib
- barh
- Slicing
- 문제풀이
- 파이썬
Archives
- Today
- Total
코딩하는 타코야끼
[Pandas] 2-1강_Pandas DataFrame(메소드) 본문
728x90
반응형
1. DataFrame 개요
- 표(table-행렬) 를 다루는 Pandas의 타입.
- Database의 Table이나 Excel의 표와 동일한 역할을 한다.
- 분석할 데이터를 가지는 판다스의 가장 핵심적인 클래스이다.
- 행(row)와 열(column) 으로 구성되 있다.
- 각 행과 각 열은 식별자를 가지며 Series와 같이 두가지 종류가 있다.
- 순번
- 양수, 음수 index 두가지를 가진다.
- 컬럼도 내부적으로는 순번으고 관리되지만 우리가 조회할 때 사용할 수는 없다.
- 이름
- 명시적으로 지정한 행과 열의 이름을 말한다.
- 행의 이름은 index name이라고 하고 열의 이름은 column name이라고 한다.
- index name과 column name은 중복될 수 있다.
- 명시적으로 지정하지 않으면 양수 순번이 index, column 이름으로 설정된다.
- 순번
- 하나의 행과 하나의 열은 Series로 구성된다.
- DataFrame 객체는 직접 데이터를 넣어 생성하거나 데이터 셋을 파일(csv, 엑셀, DB 등)로 부터 읽어와 생성한다.
2. DataFrame 생성
📍 직접 생성
- pd.DataFrame(data [, index=None, columns=None])
- data
- DataFrame을 구성할 값을 설정
- Series, List, ndarray를 담은 2차원 배열
- 열이름을 key로 컬럼의 값 value로 하는 딕션어리(사전)
- DataFrame을 구성할 값을 설정
- index
- index명으로 사용할 값 배열로 설정
- columns
- 컬럼명으로 사용할 값 배열로 설정
- data
# 2차원 자료구조를 이용해서 생성
np.random.seed(0)
data = np.random.randint(10, size=(5,3)) # 0 ~ 10-1 사이의 난수로 5행, 3열의 행렬 생성
data_df = pd.DataFrame(data, columns=['AA', 'BB', 'CC'],
index=['가', '나', '다', '라', '마'])
data_df
📍 DataFrame의 객체를 파일에 저장
- DataFrame객체는 다양한 형식의 파일로 저장할 수 있다.
- 기본구문
- DataFrame객체.to_파일타입()
🌓 CSV 파일로 저장
- DataFrame객체.to_csv(파일경로,sep=',', index=True, header=True, encoding)
- 텍스트 파일로 저장
- 파일경로: 저장할 파일경로(경로/파일명)
- sep : 데이터 구분자
- index, header: 인덱스/헤더 저장 여부
- encoding: 기본-UTF-8
# index/column 이름 저장안함 grade.to_csv('saved_data/grade3.csv', index=False, header=False)
🌓 엑셀로 저장
- DataFrame객체.to_excel(파일경로, index=True, header=True)
grade.to_excel('saved_data/grade2.xls', index=False)
🌓 기타 형식
# pickle => binary(bytes) 로 저장.
grade.to_pickle('saved_data/grade.pkl')
# html 의 테이블로 저장.
grade.to_html('saved_data/grade.html', index=False)
📍 파일로 부터 데이터셋을 읽어와 생성하기
🌓 csv 파일 등 텍스트 파일로 부터 읽어와 생성
- pd.read_csv(파일경로, sep=',', header, index_col, na_values, encoding)
- 파일경로
- 읽어올 파일의 경로
- sep=","
- 데이터 구분자.
- 기본값: 쉼표
- header=정수
- 열이름(컬럼이름)으로 사용할 행 지정
- 기본값: 첫번째 행
- None을 설정하면 Header는 없다는 것으로 파일의 첫번째 행부터 값으로 사용하고 컬럼명은 0부터 자동증가하는 값을 붙인다.
- index_col=정수,컬럼명
- index 명으로 사용할 열이름(문자열)이나 열의 순번(정수)을 지정.
- 생략시 0부터 자동증가하는 값을 붙인다.
- na_values
- 읽어올 데이터셋의 값 중 결측치로 처리할 문자열 지정.
- 파일경로
grade = pd.read_csv('saved_data/grade1.csv', index_col=0)
🌓 엑셀파일 읽기
grade_xlsx = pd.read_excel('saved_data/grade1.xlsx', index_col=0)
grade_xlsx
grade_xls = pd.read_excel('saved_data/grade2.xls')
grade_xls
3. 주요 메소드, 속성
📍 메소드
📍 데이터 프레임의 기본 정보 조회
🌓 명령어
- csv 파일 읽기
- shape
- info()
- head()
- tail()
- isnull().sum()
- 컬럼별 null 체크 (sum() 한번 더 하면 총개수)
- describe() : 숫자형-기술통계값, 범주형-총개수, 고유값들, 최빈값
🌓 DataFrame 자체의 정보
df.info()
🌓 DataFrame 해석
- object: 문자열
- 컬럼별로
- 결측치 있는 지 여부
- 데이터 타입, 크기
- 데이터 딕셔너리와 비교해서 잘못된 데이터 타입은 없는지 확인
- 컬럼이 가지는 값에 비해 너무 큰 크기로 잡힌 것은 아닌지 확인
🌓 df.isna( ).sum( )
# 결측치 개수를 확인 => 컬럼별.
# df.isnull() # 원소별로 결측치인지 여부 확인 : True-결측치, False: 일반값
# df.isnull().sum()
# 1. bool 값들을 sum()-덧셈 : True-1, False-0 ==> True가 몇개?
# 2. DataFrame객체.sum() - 컬럼단위로 계산.
df.isna().sum()
🌓 df.describe( )
# 1. 컬럼단위로 통계치를 묶어서 보여준다.
# 2. 수치형 컬럼들만 보여준다.
df.describe()
반응형
'[T.I.L] : Today I Learned > Pandas' 카테고리의 다른 글
[Pandas] 4-2강_pivot_table 및 일괄처리 메소드 (0) | 2023.04.19 |
---|---|
[Pandas] 4-1강_groupby 관련 메소드 (0) | 2023.04.19 |
[Pandas] 3강_Pandas 정렬 집계 (0) | 2023.04.18 |
[Pandas] 2-2강_Pandas DataFrame(행, 열의 값 조회 및 변경) (0) | 2023.04.13 |
[Pandas] 1강_Pandas Series (1) | 2023.04.11 |