반응형
파이썬(Python) 데이터처리 - 판다스(pandas)
- 판다스(pandas)는 파이썬(python)의 내장 모듈이 아니므로 설치가 필요합니다.
(아나콘다 배포판에는 포함되어 있어 별도로 설치할 필요가 없습니다.)
- 판다스는 표 데이터의 처리와 분석을 간편하게 수행할 수 있는 다양한 기능을 제공합니다.
import pandas as pd
1. 판다스 데이터 구조와 생성
- Series() : 라벨이 있는 연속된 Series 데이터를 생성
- date_range() : DatatimeIndex 형식의 날짜 데이터를 생성
- DataFrame() : 행과 열이 있는 표 형식의 DataFrame 데이터를 생성
(1) Series
- 라벨이 있는 1차원 데이터 타입 생성
ss = pd.Series(data[, index = index_data])
(예제1)
import pandas as pd
data = [10, 20, 30, 40, 50]
ss = pd.Series(data)
print(ss)
(결과)
0 10
1 20
2 30
3 40
4 50
dtype: int64
(예제2)
import numpy as np
import pandas as pd
data = np.array(['a', 'b', 'c', 'd', 'e'])
ss = pd.Series(data, index=[10, 11, 12, 13, 14])
print(ss)
(결과)
10 a
11 b
12 c
13 d
14 e
dtype: object
(2) date_range()
- 날짜를 입력할때 시작일과 종료일 또는 시작일과 기간을 지정하면 날짜를 자동으로 생성해주는 함수입니다.
ss = pd.date_range(start = None, end = None, periods = None, freq = 'D')
- start : 시작날짜
- end : 종료날짜
- periods : 날짜 데이터 생성 기간
- freq : 날짜 데이터 생성 주기
약어 | 설명 | 사용예 |
D | 달력 날짜 기준 하루 주기 | 하루 주기 : freq = 'D', 이틀주기 : freq = '2D' |
B | 달력 날짜 기준 하루 주기 | 업무일(월요일~금요일) 기준으로 생성 : freq = 'B', freq = '3B' |
W | 요일 시작 기준 일주일 주기 | 일요일 기준 : freq = 'W-SUN' 또는 freq = 'W' 월요일 기준 : freq = 'W-MON', 화요일 기준 : freq = 'W-TUE' |
M | 월말 날짜 기준 주기 | 한달 주기 : freq = 'M', 네달 주기 : freq = '4M' |
BM | 업무 월말 날짜 기준 주기 | freq = 'BM', freq = '2BM' |
MS | 월초 날짜 기준 주기 | freq = 'MS', freq = '2MS' |
BMS | 업무 월초 날짜 기준 주기 | freq = 'BMS', freq = '2BMS' |
Q | 분기 끝 날짜 기준 주기 | freq = 'Q', freq = '2Q' |
BQ | 업무 분기 끝 날짜 기준 주기 | freq = 'BQ', freq = '2BQ' |
QS | 분기 시작 날짜 기준 주기 | freq = 'QS', freq = '2QS' |
BQS | 업무 분기 시작 날짜 기준 주기 | freq = BQS', freq = '2BQS' |
A | 일년 끝 날짜 기준 주기 | freq = 'A', freq = '2A' |
BA | 업무 일년 끝 날짜 기준 주기 | freq = 'BA', freq = '2BA' |
AS | 일년 시작 날짜 기준 주기 | freq = 'AS', freq = '2AS' |
BAS | 업무 일년 시작 날짜 기준 주기 | freq = 'BAS', freq = '2BAS' |
H | 시간 기준 주기 | 1시간 주기 : freq = 'H', 2시간 주기 : freq = '2H' |
BH | 업무 시간 기준 주기 | 업무시간 (09:00 ~ 17:00) 기준으로 생성 |
T, min | 분 주기 | 10분 주기 : freq = '10T', 30분 주기 : freq = '30min' |
S | 초 주기 | 1초 주기 : freq = 'S', 30초 주기 : freq = '30S' |
(예제)
(예제1)
import pandas as pd
pd.date_range(start='2024-11-01',end='2024-11-15',freq='2D')
(결과)
DatetimeIndex(['2024-11-01', '2024-11-03', '2024-11-05', '2024-11-07',
'2024-11-09', '2024-11-11', '2024-11-13', '2024-11-15'],
dtype='datetime64[ns]', freq='2D')
(예제2)
import pandas as pd
pd.date_range(start='2024-11-01', periods=10)
(결과)
DatetimeIndex(['2024-11-01', '2024-11-02', '2024-11-03', '2024-11-04',
'2024-11-05', '2024-11-06', '2024-11-07', '2024-11-08',
'2024-11-09', '2024-11-10'],
dtype='datetime64[ns]', freq='D')
(예제3)
import pandas as pd
pd.date_range(start='2024-11-01', periods=15, freq='B')
(결과)
DatetimeIndex(['2024-11-01', '2024-11-04', '2024-11-05', '2024-11-06',
'2024-11-07', '2024-11-08', '2024-11-11', '2024-11-12',
'2024-11-13', '2024-11-14', '2024-11-15', '2024-11-18',
'2024-11-19', '2024-11-20', '2024-11-21'],
dtype='datetime64[ns]', freq='B')
(3) DataFrame()
- 행과 열이 있는 표 형식의 데이터를 생성합니다.
df = pd.DataFrame(data[, index = index_data, columns = columns_data])
(예제1)
import pandas as pd
raw_data = {'col0': [1, 2, 3, 4],
'col1': [10, 20, 30, 40],
'col2': [100, 200, 300, 400]}
data = pd.DataFrame(raw_data)
print(data)
(결과)
col0 col1 col2
0 1 10 100
1 2 20 200
2 3 30 300
3 4 40 400
(예제2)
import pandas as pd
index_data = pd.date_range('2024-11-01', periods=3)
col_data = ['A','B','C','D']
raw_data = np.array([[1, 2, 3, 4], [10, 20, 30, 40], [100, 200, 300, 400]])
data = pd.DataFrame(raw_data, index=index_data, columns = col_data)
print(data)
(결과)
A B C D
2024-11-01 1 2 3 4
2024-11-02 10 20 30 40
2024-11-03 100 200 300 400
반응형
'개발(IT) > Python(파이썬)' 카테고리의 다른 글
파이썬(Python) 데이터처리 - 판다스(pandas) #2 (0) | 2024.12.11 |
---|---|
파이썬(Python) 데이터처리 - 넘파이(NumPy) (0) | 2024.12.01 |
파이썬(Python) 문자열 처리 (0) | 2024.11.30 |
파이썬(Python) 파일 읽고(read) 쓰기(write) (0) | 2024.11.23 |
파이썬(Python) 스케줄러 패키지(Schedule Package) (0) | 2024.11.16 |