1. 컬럼(변수) 삭제 및 생성
# 엑셀 파일 dust1.xlxs 파일을 불러와서 데이터프레임을 생성
import pandas as pd
dust = pd.read_excel('../input/dust1.xlsx')
dust.head()
👩🏻🚀 삭제 : drop()
# 데이터 분석에 필요없는 '지역', '망', '측정소 코드' 컬럼을 삭제하고 특정 값으로 새로운 컬럼을 생성.
dust = dust.drop(['지역', '망', '측정소코드'], axis=1)
# axis의 기본값이 axis=0 으로 행 삭제가 됨. 컬럼을 삭제하기 위해서는 axis=1을 반드시 사용.
dust.head()
👩🏻🚀 생성 : df['새로운 컬럼명'] = '값'
# 새로운 컬럼 생성
dust['city'] = '서울'
dust.head()
2. 컬럼 이름 변경
# 전체 변수 이름을 재설정
DataFrame.columns=['새이름1', '새이름2',...]
# 원하는 변수이름만 수정
DataFrame.rename(columns={'기존이름':'새이름'}, inplace=True)
dust.rename(columns={'측정소명': 'name', '측정일시': 'date', '주소': 'addr'}, inplace=True)
dust.columns
'''
Index(['name', 'date', 'SO2', 'CO', 'O3', 'NO2', 'PM10', 'PM25', 'addr',
'city'],
dtype='object')
'''
3. 데이터 형변환
dust.dtypes
'''
name object
date int64
SO2 float64
CO float64
O3 float64
NO2 float64
PM10 int64
PM25 int64
addr object
city object
dtype: object
'''
📍 date 컬럼이 숫자형(int)로 저장되어 있음
▶️ 숫자 형식은 문자 형식으로 변환
📍 astype(str) : 숫자 ➡️ 문자열 형식으로 변환
📍 astype(int) : 문자열 ➡️ 숫자 형식으로 변환
# 숫자 int 형을 문자열로 변환
dust['date'] = dust['date'].astype(str)
dust['date'] = dust['date'].str.slice(0, 8)
dust.head()
📍 pd.to_datetime()
# 문자 형식을 날짜형으로 변환
dust['date'] = pd.to_datetime(dust['date'])
dust.dtypes
'''
name object
date datetime64[ns]
...
'''
📍 Series.dt.형식
# 날짜 형식 활용 : Series.dt.형식
dust['year'] = dust['date'].dt.year
dust['month'] = dust['date'].dt.month
dust['day'] = dust['date'].dt.day
dust.head()
4. 데이터 병합
👩🏻🚀 merge() 함수는 두 데이터프레임을 각 데이터에 존재하는 고유값(key)을 기준으로 병합할 때 사용
pd.merge(df_left, df_right, how='inner', on=None)
📍 기본 값은 on=None이므로 두 데이터의 공동 열이름(id)를 기준으로 inner(교집합) 조인을 하게 됨
📍 outer 옵션을 줘서 id를 기준으로 합치되, 어느 한 쪽이라도 데이터가 없는 경우 Nan 값이 지정 됨
# 병합할 원본 데이터 확인
s1 = pd.read_excel('../input/nation.xlsx')
s1.head()
s2 = pd.read_excel('../input/code.xlsx')
s2.head()
# 데이터 병합 : 공통 컬럼을 기준
pd.merge(s1, s2, on='국적코드')
5. 데이터 그룹핑
👩🏻🚀 데이터 그룹핑은 데이터를 특정한 값에 기반해 묶는 기능으로 groupby()를 사용하여 통계량을 요약할 수 있음
👩🏻🚀 통계량에 관계된 메서드에는 mean(평균), std(표준편차), var(분산), max(최대값), min(최소값) 등이 있음
1) 한 열을 기준으로 그룹화 하기
import pandas as pd
s1 = pd.read_excel('../input/nation.xlsx')
s1
s1.groupby('국적코드').sum()
# 국적코드를 그룹별로 합친다. (숫자 뿐만 아니라 문자열도 합침)
s1.groupby('성별').sum()
# 성별로 나누어 다른 항목을 합친다.
2) 여러 열을 기준으로 그룹화하기
s1.groupby(['국적코드', '성별']).sum()
[ 내용 참고 : IT 학원 강의 ]
'Programming Language > Python' 카테고리의 다른 글
[Python] Matplotlib | 선 그래프 (0) | 2024.03.13 |
---|---|
[Python] Matplotlib 라이브러리와 시각화 옵션 [제목, 범례, 색상, 축 이름, 선 모양, 범위 지정], 내장 시각화 옵션 (0) | 2024.03.13 |
[Python] Pandas | 결측데이터 확인, 삭제, 대체 (0) | 2024.03.13 |
[Python] Pandas | 데이터 선택 - 열, 행, df.loc, df.iloc, 불인덱싱 (2) | 2024.03.12 |
[Python] Pandas | 데이터 파일 저장 to_csv(), 데이터 확인 메소드 (0) | 2024.03.12 |