: 표(table - 행렬)을 다루는 Pandas의 타입
(Database 의 Table이나 Exvel의 표와 동일한 역할)
→ 분석할 데이터를 가지는 판다스의 가장 핵심적인 class
→ 행(row)
, 열(column)
로 구성
→ 하나의 해과 하나의 열은 Series로 구성됨
→ DataFrame 객체는 직접 데이터를 넣어 생성하거나 데이터 셋을 파일(csv, 엑셀, DB 등)로 부터 읽어와 생성
pd.DataFrame(data [, index=None, columns=None])
ex)
import pandas as pd
#dictionary 이용
data = {
"id": ['id-1', 'id-2', 'id-3', 'id-4', 'id-5'],
"국어" : [100, 80, 90, 70, 80],
"영어": [80, 90, 75, 80, 60]
}
grade = pd.DataFrame(data)
grade
DataFrame객체.to_파일타입()
DataFrame객체.to_csv(파일경로,sep=',', index=True, header=True)
DataFrame객체.to_excel(파일경로, index=True, header=True)
index명은 굳이 저장 할 필요 없이 불러올 때 자동으로 인출할 수 있음 ( index 명이 자동 증가인 경우가 해당)
grade.to_pickle('saved_data/grade.pkl')
grade.to_html('saved_data/grade.html', index=False)
구문
: pd.read_csv(파일경로, sep=',', header, index_col, na_values)
파일경로
→ 읽어올 파일의 경로
df.columns = ['새이름','새이름', ... , '새이름']
df.columns[1] = '새이름'
구문:
DataFrame객체.rename(index=행이름변경설정, columns=열이름변경설정, inplace=False)
특정 컬럼을 행의 index 명으로 사용
열이 index명이 되면서 그 컬럼은 Data Set 에서 제거됨
DataFrame객체.reset_index(inplace=False)
- index를 첫번째 컬럼으로 복원
DataFrame객체.drop(columns, index, inplace=False)
indexer 연산자를 이용한다.
열은 indexing만 되고 slicing은 안된다.
행은 indexing, slicing 모두 지원한다.
df['열이름']
df.열이름
Fancy indexing
주의
열은 순번으로는 조회할 수 없다.
열 조회 indexer에서 슬라이싱을 하면 행 조회 Slicing이다.
- 만약 indexing이나 slicing을 이용해 열들을 조회하려면 columns 속성을 이용한다.
- df[df.columns[:3]]
loc : index 이름으로 조회
iloc : 행 순번으로 조회
DF.loc[ index이름 ]
DF.loc[ index이름 리스트 ]
DF.loc[start index이름 : end index이름: step]
DF.loc[index이름 , 컬럼이름]
index(행 순번)으로 조회
DF.iloc[행번호]
DF.iloc[ 행번호 리스트 ]
DF.iloc[start 행번호: stop 행번호: step]
DF.iloc[행번호 , 열번호]
행과 열 조회
행열 모두 순번으로 지정
loc은 이름(column name), iloc은 번호(index)
원하는 조건을 만족하는 행, 열을 조회한다.
DataFrame객체[조건], DataFrame객체.loc[조건]
DataFrame객체[조건][열]
DataFrame객체.loc[조건, 열]
iloc indexer는 boolean indexing을 지원하지 않는다.
논리연산자
논리연산자 | 설명 |
---|---|
& | and 연산 |
\ | or 연산 |
~ | not 연산 |
- 논리연산자의 피연산자들은 반드시 ( )로 묶어준다.
- 파이썬과는 다르게
and
,or
,not
예약어는 사용할 수 없다.
"컬럼명 연산자 비교값"
비교 연산자
결측치 비교
논리 연산자
in 연산자
Index name으로 검색
컬럼명.str.contains(문자열)
: 문자열을 포함하고 있는 컬럼명.str.startswith(문자열)
: 문자열로 시작하는컬럼명.str.endswith(문자열)
: 문자열로 끝나는