새소식

AIVLE School DX 3기

[에이블스쿨 3주차] 1차 미니프로젝트 2일차🚍

  • -
728x90
반응형

2일차에는
서울시 버스노선별 정류장별 승하차 인원 정보서울시 지하철 호선별 역별 시간대별 승하차 인원 정보 데이터로 실습을 진행했습니다.

# 한글이 포함된 csv 불러오기
pd.read_csv('path.csv', encoding='cp949

버스🚍

💾승하차 인원 정보https://data.seoul.go.kr/dataList/OA-12912/S/1/datasetView.do
💾버스정류소 위치정보 https://data.seoul.go.kr/dataList/OA-15067/S/1/datasetView.do

 

이상치 제거

서울시 자료만 필요하기에 나머지(경기도, 가상정류장)는 이상치로 판단해 전부 삭제했습니다.
(TIP📍 지역코드를 활용해 각 자치구를 판단할 수 있습니다.)

# '자치구'라는 새 columns 생성
# 그 안에 값은 '버스정류장ARS번호'의 0부터 2번 앞까지 값을 slice해서 넣어준다
bus['자치구'] = bus['버스정류장ARS번호'].str.slice(start=0, stop=2)

→ 여기에 해당되지 않는 값들은 전부 결측치(NaN)으로 입력되도록 합니다.

  • 일치하는 자료 찾기
    isin() : 완전한 일치 / 여러 데이터 타입에서 사용가능
    contains(): 부분 일치 / 앞에 str.을 붙여서 오로지 string에서만 사용 가능
  • columns 없애기
    dropna() : 결측치가 있는 columns 없애기
    drop() : 해당 columns 없애디


서울버스전체데이터 ∩ 서울버스정류소위치정보 → 서울만운행하는버스데이터

df = pd.merge(bus, only_seoul, how = 'inner', on = '버스정류장ARS번호')

 

구별 데이터 집계

  • 합계계산
    unique(): 데이터에 고유값들이 어떠한 종류들이 있는지 알고 싶을때 사용하는 함수
    nunique(): 데이터에 고유값들의 수를 출력해주는 함수
    value_counts(): 값별로 데이터의 수를 출력해주는 함수
# 서울시 전체의 버스 정류장 개수
df['버스정류장ARS번호'].unique()

# 구별로 정류장 개수를 파악
df.groupby(by=['자치구'], as_index=False)['버스정류장ARS번호'].nunique()

지하철🚎

💾 https://data.seoul.go.kr/dataList/OA-12252/S/1/datasetView.do

datetime

dt.year : 연도 추출
dt.month : 월 추출
dt.day : 일 추출
dt.time : 시간 추출
dt.date : 날짜 추출
dt.dayofweek : 요일을 정수로 추출
dt.day_name() : 요일을 문자열로 추출

 

언제 이용자 수가 많을까?

groupby()를 활용해서 원하는 데이터를 뽑을 수 있다.

df.groupby(['무엇을 기준으로'])['뽑으려는 데이터'].sum().sort_values(ascending=False)

 

피벗 테이블

df = pd.pivot_table(df,                # 피벗할 데이터프레임
                     index = '행',
                     columns = '열',
                     values = '데이터로 이용될 열',
                     aggfunc = '데이터 집계함수(sum, mean 등)')

 

느낀점

어제와 다르게 처음 수집된 데이터가 얼마나 깔끔하냐에 따라 데이터 분석이 쉽다는 것을 느꼈습니다.
분명히 어제 모기 데이터보다 더 많은 양이었는데도 명확하게 분류되어 있으니 전처리하는 과정이 편했습니다.
효율적으로 코드를 짜는것도 중요하지만 우리가 필요한 데이터를 뽑아내는 과정을
데이터수집을 할때 정확한 기준으로 나누기 위해 얼마나 힘쓰는지도 알 수 있었습니다😊

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.