728x90
서울교통공사 역사면적정보 전처리 및 csv로 저장
import pandas as pd

df = pd.read_csv("./data/서울교통공사_역사면적정보_20250310.csv", encoding="euc-kr")
# 위에서부터 10개의 데이터를 확인
df.head(10)

df.tail(10)

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 277 entries, 0 to 276
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 연번 277 non-null int64
1 호선 277 non-null int64
2 역명 277 non-null object
3 대합실면적 277 non-null float64
4 승강장면적 277 non-null float64
dtypes: float64(2), int64(2), object(1)
memory usage: 10.9+ KB
df["역명"].unique()
array(['서울역', '시청', '종각', '종로3가', '종로5가', '동대문', '동묘앞', '신설동', '제기동',
'청량리', '을지로입구', '을지로3가', '을지로4가', '동대문역사문화공원', '신당', '상왕십리', '왕십리',
'한양대', '뚝섬', '성수', '건대입구', '구의', '강변', '잠실나루', '잠실', '잠실새내',
'종합운동장', '삼성', '선릉', '역삼', '강남', '교대', '서초', '방배', '사당', '낙성대',
'서울대입구', '봉천', '신림', '신대방', '구로디지털단지', '대림', '신도림', '문래', '영등포구청',
'당산', '합정', '홍대입구', '신촌', '이대', '아현', '충정로', '용답', '신답', '용두',
'도림천', '양천구청', '신정네거리', '까치산', '지축', '구파발', '연신내', '불광', '녹번',
'홍제', '무악재', '독립문', '경복궁', '안국', '충무로', '동대입구', '약수', '금호', '옥수',
'압구정', '신사', '잠원', '고속터미널', '남부터미널', '양재', '매봉', '도곡', '대치', '학여울',
'대청', '일원', '수서', '가락시장', '경찰병원', '오금', '불암산', '상계', '노원', '창동',
'쌍문', '수유', '미아', '미아사거리', '길음', '성신여대입구', '한성대입구', '혜화', '명동',
'회현', '숙대입구', '삼각지', '신용산', '이촌', '동작', '총신대입구', '남태령', '방화',
'개화산', '김포공항', '송정', '마곡', '발산', '우장산', '화곡', '신정', '목동', '오목교',
'양평', '영등포시장', '신길', '여의도', '여의나루', '마포', '공덕', '애오개', '서대문',
'광화문', '청구', '신금호', '행당', '마장', '답십리', '장한평', '군자', '아차산', '광나루',
'천호', '강동', '길동', '굽은다리', '명일', '고덕', '상일동', '강일', '미사', '하남풍산',
'하남시청', '하남검단산', '둔촌동', '올림픽공원', '방이', '개롱', '거여', '마천', '응암',
'역촌', '독바위', '구산', '새절', '증산', '디지털미디어시티', '월드컵경기장', '마포구청', '망원',
'상수', '광흥창', '대흥', '효창공원앞', '녹사평', '이태원', '한강진', '버티고개', '창신',
'보문', '안암', '고려대', '월곡', '상월곡', '돌곶이', '석계', '태릉입구', '화랑대', '봉화산',
'신내', '장암', '도봉산', '수락산', '마들', '중계', '하계', '공릉', '먹골', '중화', '상봉',
'면목', '사가정', '용마산', '중곡', '어린이대공원', '자양', '청담', '강남구청', '학동', '논현',
'반포', '내방', '이수', '남성', '숭실대입구', '상도', '장승배기', '신대방삼거리', '보라매',
'신풍', '남구로', '가산디지털단지', '철산', '광명사거리', '천왕', '온수', '암사역사공원', '암사',
'강동구청', '몽촌토성', '석촌', '송파', '문정', '장지', '복정', '남위례', '산성',
'남한산성입구', '단대오거리', '신흥', '수진', '모란'], dtype=object)
# 중복을 제거한 역명 개수
len(df["역명"].unique())
241
df.dtypes
연번 int64
호선 int64
역명 object
대합실면적 float64
승강장면적 float64
dtype: object
df.describe()

df.count()
연번 277
호선 277
역명 277
대합실면적 277
승강장면적 277
dtype: int64
df["대합실면적"].mean()
5675.24714801444
df["승강장면적"].mean()
2337.263976714801
df.columns
Index(['연번', '호선', '역명', '대합실면적', '승강장면적'], dtype='object')
# 컬럼명 변경
df.columns = ['연번', '노선명', '역명', '대합실면적', '승강장면적']
df.head()

# csv파일로 저장
df.to_csv('subway-extent.csv', index=False)

'05_Pandas' 카테고리의 다른 글
| [Pandas]datetime에서 시간만 추출 (0) | 2025.04.17 |
|---|---|
| 07_서울교통공사_에스컬레이터 설치 정보(1~9호선) (1) | 2025.03.27 |
| 05-5_연습문제_occupation (0) | 2025.03.07 |
| 05-4_연습문제_Vaccine (0) | 2025.03.07 |
| 05-3_연습문제_Fictional_Army (1) | 2025.03.06 |