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 학원 강의 ]

+ Recent posts