Pandas
- 표 형태의 데이터(정형 데이터)를 분석. 저장
- DataFrame : 행(row, record)과 열(column, field)로 이루어짐. 2차원 형태 series 의 모음
- Series : 1차원 형태의 데이터, 벡터
1. Pandas 기초와 이해
- 객체 생성
# 딕셔너리 데이터를 Series 데이터로 생성하기
# key가 인덱스가 된다
dict_data = {'a':1, 'b':2, 'c':3}
sr = pd.Series(dict_data)
# 딕셔너리 데이터를 DataFrame 객체 생성하기
# key가 컬럼명이 된다
dict_data = {'c0':[1,2,3], 'c1':[4,5,6], 'c2':[7,8,9], 'c3':[10,11,12], 'c4':[13,14,15]}
df = pd.DataFrame(dict_data)
# 인덱스 변경하기
df.index = ['학생1','학생2','학생3']
print(df)
# 컬럼명 변경하기
df.columns = [ ]
rename( )
# 특정 컬럼의 평균 구하기
df['수학'].mean()
df.mean()['수학']
df.수학.mean()
df.mean().수학
df.mean()[0] # 첫 번째 컬럼이 수학
# 중간값 : median . 컬럼 기준임
데이터의 중간값 : 홀수일때 가운데 값, 짝수 : 가운데 값 2개의 평균
평균값을 대표값으로 사용하면 값의 왜곡이 일어날 수 있다. ex)일반인과 재드래곤의 월급 평균..
- 행(row) 데이터 조회하기
- loc [인덱스명]
- iloc [인덱스번호]
# 1. 이몽룡의 수학, 영어 점수 조회. Series 조회
df.loc['이몽룡'][['수학','영어']]
df.loc['이몽룡',['수학','영어']] # loc[행,열] 의 개념
# 2. 이몽룡의 수학, 영어 점수 조회. DataFrame 조회 . 마스킹(행)
df.loc[['이몽룡'],['수학','영어']]
df.loc[['이몽룡']][['수학','영어']] # loc 마스킹 리스트(여러개니까)
# 모든 학생(row)의 평균/총점 구하기 : axis 옵션
df.mean(axis=1)
df.sum(axis='columns')
- 표준편차 : std() . (평균값 - 현재값) ** 2
- 분산 : var() . 표준편차의 합의 평균
- 기술통계 : describe() . 기본적인 수치 데이터 분석 (include='all' => 문자컬럼도 출력)
- 상관계수 : corr() . 컬럼들 사이의 상관관계를 수치로 표현.
- 깊은 복사 : df2 = df.copy(), df3 = df[:]
- 얕은 복사 : df2 = df
set_index() | 특정 컬럼을 인덱스로 변경 |
reset_index() | 새 인덱스 생성 |
reindex() | 인덱스 추가 (새로운 행 생성), fill_value 옵션 |
sort_index() | 인덱스 기준 정렬 |
srot_values(by=) | 지정한 컬럼의 값을 기준으로 정렬 |
idxmin() / idxmax() | 컬럼별 최소/최대값을 가진 인덱스를 반환 |
value_counts() | 값 별 개수를 세어 내림차순 정렬 |
unique() | 중복없이 데이터 조회 |
shape | (행,열) 개수 |
dtypes | 데이터타입 조회 |
2. 빅데이터 특징
3V
- Volume(규모) : 데이터의 양이 많다
- Velocity(속도) : 처리 속도가 빨라야한다
- Variety(다양성) : 데이터의 형태가 다양함
- 정형 데이터 : 데이터베이스, csv, excel, 표 데이터
- 반정형 데이터 : json, xml, html, ...
- 비정형 데이터 : 동영상, 이미지
'환경, 에너지' 카테고리의 다른 글
[EMS] folium, numpy (0) | 2024.07.09 |
---|---|
[EMS] matplotlib, folium (0) | 2024.07.08 |
[EMS] Python 예외처리, 클래스와 모듈, 정규식 (1) | 2024.07.03 |
[EMS] Python 기초 (0) | 2024.07.02 |
[EMS] ESS 이해와 사례분석 (0) | 2024.06.28 |