티스토리 뷰
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('CARD_SUBWAY_MONTH_201901.csv')
data.head()
#data.tail()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
18329 | 20190131 | 1호선 | 155 | 동대문 | 14563 | 15139 | 20190203 |
18330 | 20190131 | 1호선 | 154 | 종로5가 | 30249 | 29703 | 20190203 |
18331 | 20190131 | 1호선 | 153 | 종로3가 | 36804 | 35050 | 20190203 |
18332 | 20190131 | 1호선 | 152 | 종각 | 51970 | 50080 | 20190203 |
18333 | 20190131 | 1호선 | 151 | 시청 | 29059 | 29169 | 20190203 |
data.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 18334 entries, 0 to 18333 Data columns (total 7 columns): 사용일자 18334 non-null int64 노선명 18334 non-null object 역ID 18334 non-null int64 역명 18334 non-null object 승차총승객수 18334 non-null int64 하차총승객수 18334 non-null int64 등록일자 18334 non-null int64 dtypes: int64(5), object(2) memory usage: 1002.7+ KB
data.describe()
사용일자 | 역ID | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|
count | 1.833400e+04 | 18334.000000 | 18334.000000 | 18334.000000 | 1.833400e+04 |
mean | 2.019012e+07 | 1882.867296 | 12100.360751 | 12048.564143 | 2.019013e+07 |
std | 8.945375e+00 | 1178.994356 | 12968.981816 | 13155.849968 | 2.615326e+01 |
min | 2.019010e+07 | 150.000000 | 1.000000 | 0.000000 | 2.019010e+07 |
25% | 2.019011e+07 | 1030.000000 | 3848.250000 | 3661.250000 | 2.019011e+07 |
50% | 2.019012e+07 | 1812.000000 | 8364.000000 | 8177.000000 | 2.019012e+07 |
75% | 2.019012e+07 | 2634.000000 | 15865.000000 | 15733.750000 | 2.019013e+07 |
max | 2.019013e+07 | 4713.000000 | 132727.000000 | 137826.000000 | 2.019020e+07 |
data.index
RangeIndex(start=0, stop=18334, step=1)
data.columns
Index(['사용일자', '노선명', '역ID', '역명', '승차총승객수', '하차총승객수', '등록일자'], dtype='object')
data['사용일자'] # [''] 한 컬럼에 대해서 data값을 구하면 시리즈 형식으로 나온다.
data.사용일자
0 20190101 1 20190101 2 20190101 3 20190101 4 20190101 5 20190101 6 20190101 7 20190101 8 20190101 9 20190101 10 20190101 11 20190101 12 20190101 13 20190101 14 20190101 15 20190101 16 20190101 17 20190101 18 20190101 19 20190101 20 20190101 21 20190101 22 20190101 23 20190101 24 20190101 25 20190101 26 20190101 27 20190101 28 20190101 29 20190101 ... 18304 20190131 18305 20190131 18306 20190131 18307 20190131 18308 20190131 18309 20190131 18310 20190131 18311 20190131 18312 20190131 18313 20190131 18314 20190131 18315 20190131 18316 20190131 18317 20190131 18318 20190131 18319 20190131 18320 20190131 18321 20190131 18322 20190131 18323 20190131 18324 20190131 18325 20190131 18326 20190131 18327 20190131 18328 20190131 18329 20190131 18330 20190131 18331 20190131 18332 20190131 18333 20190131 Name: 사용일자, Length: 18334, dtype: int64
data.head()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 |
4 | 20190101 | 경춘선 | 1319 | 마석 | 1772 | 1963 | 20190104 |
data2 = data[ ['승차총승객수','하차총승객수'] ]
data2.head()
승차총승객수 | 하차총승객수 | |
---|---|---|
0 | 1520 | 1436 |
1 | 275 | 114 |
2 | 1509 | 1083 |
3 | 357 | 271 |
4 | 1772 | 1963 |
data2.values # 데이터 프레임이 넘파이 어레이로 바뀐다.
array([[ 1520, 1436], [ 275, 114], [ 1509, 1083], ..., [36804, 35050], [51970, 50080], [29059, 29169]], dtype=int64)
data[data.승차총승객수<10]
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
16 | 20190101 | 경의선 | 1296 | 계양 | 1 | 0 | 20190104 |
266 | 20190101 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190104 |
370 | 20190101 | 3호선 | 321 | 충무로 | 2 | 0 | 20190104 |
439 | 20190101 | 경원선 | 1022 | 창동 | 1 | 0 | 20190104 |
662 | 20190102 | 3호선 | 321 | 충무로 | 2 | 0 | 20190105 |
765 | 20190102 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190105 |
1009 | 20190102 | 경의선 | 1295 | 김포공항 | 1 | 0 | 20190105 |
1077 | 20190102 | 분당선 | 1031 | 복정 | 1 | 0 | 20190105 |
1285 | 20190103 | 분당선 | 1031 | 복정 | 3 | 0 | 20190106 |
1354 | 20190103 | 경의선 | 1296 | 계양 | 1 | 0 | 20190106 |
1355 | 20190103 | 경의선 | 1295 | 김포공항 | 1 | 0 | 20190106 |
1397 | 20190103 | 경원선 | 1022 | 창동 | 1 | 0 | 20190106 |
1699 | 20190103 | 3호선 | 321 | 충무로 | 2 | 0 | 20190106 |
2255 | 20190104 | 분당선 | 1031 | 복정 | 1 | 0 | 20190107 |
2358 | 20190104 | 경원선 | 1022 | 창동 | 3 | 0 | 20190107 |
2457 | 20190105 | 3호선 | 321 | 충무로 | 1 | 0 | 20190108 |
3138 | 20190106 | 경의선 | 1295 | 김포공항 | 1 | 0 | 20190109 |
3380 | 20190106 | 6호선 | 2615 | 연신내 | 4 | 0 | 20190109 |
3685 | 20190107 | 분당선 | 1031 | 복정 | 1 | 0 | 20190110 |
3765 | 20190107 | 3호선 | 321 | 충무로 | 2 | 0 | 20190110 |
3842 | 20190107 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190110 |
4039 | 20190107 | 경의선 | 1291 | 서울역 | 2 | 0 | 20190110 |
4245 | 20190108 | 경의선 | 1293 | 홍대입구 | 1 | 0 | 20190111 |
4349 | 20190108 | 분당선 | 1031 | 복정 | 3 | 0 | 20190111 |
4672 | 20190108 | 3호선 | 321 | 충무로 | 2 | 0 | 20190111 |
4837 | 20190109 | 경의선 | 1291 | 서울역 | 1 | 0 | 20190112 |
5081 | 20190109 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190112 |
5276 | 20190109 | 일산선 | 1949 | 지축 | 1 | 0 | 20190112 |
5702 | 20190110 | 경원선 | 1022 | 창동 | 1 | 0 | 20190113 |
5744 | 20190110 | 경의선 | 1295 | 김포공항 | 2 | 0 | 20190113 |
... | ... | ... | ... | ... | ... | ... | ... |
13481 | 20190123 | 경의선 | 1295 | 김포공항 | 1 | 0 | 20190126 |
13746 | 20190124 | 경의선 | 1291 | 서울역 | 1 | 0 | 20190127 |
13788 | 20190124 | 경원선 | 1022 | 창동 | 4 | 0 | 20190127 |
14018 | 20190124 | 6호선 | 2615 | 연신내 | 3 | 0 | 20190127 |
14192 | 20190124 | 분당선 | 1031 | 복정 | 2 | 0 | 20190127 |
14351 | 20190125 | 3호선 | 321 | 충무로 | 4 | 0 | 20190128 |
14993 | 20190126 | 경원선 | 1022 | 창동 | 1 | 0 | 20190129 |
15195 | 20190126 | 6호선 | 2615 | 연신내 | 2 | 0 | 20190129 |
15298 | 20190126 | 3호선 | 321 | 충무로 | 3 | 0 | 20190129 |
15394 | 20190127 | 3호선 | 321 | 충무로 | 1 | 0 | 20190130 |
15483 | 20190127 | 분당선 | 1031 | 복정 | 1 | 0 | 20190130 |
15640 | 20190127 | 경의선 | 1296 | 계양 | 1 | 0 | 20190130 |
15641 | 20190127 | 경의선 | 1291 | 서울역 | 1 | 0 | 20190130 |
16073 | 20190128 | 3호선 | 321 | 충무로 | 3 | 0 | 20190131 |
16193 | 20190128 | 경의선 | 1296 | 계양 | 1 | 0 | 20190131 |
16194 | 20190128 | 경의선 | 1291 | 서울역 | 2 | 0 | 20190131 |
16435 | 20190128 | 6호선 | 2615 | 연신내 | 3 | 0 | 20190131 |
16564 | 20190129 | 6호선 | 2615 | 연신내 | 2 | 0 | 20190201 |
16750 | 20190129 | 분당선 | 1031 | 복정 | 1 | 0 | 20190201 |
16851 | 20190129 | 경의선 | 1297 | 검암 | 2 | 0 | 20190201 |
16852 | 20190129 | 경의선 | 1295 | 김포공항 | 1 | 0 | 20190201 |
17053 | 20190129 | 3호선 | 321 | 충무로 | 2 | 0 | 20190201 |
17163 | 20190130 | 경원선 | 1022 | 창동 | 1 | 0 | 20190202 |
17204 | 20190130 | 경의선 | 1291 | 서울역 | 1 | 0 | 20190202 |
17273 | 20190130 | 분당선 | 1031 | 복정 | 2 | 0 | 20190202 |
17569 | 20190130 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190202 |
17672 | 20190130 | 3호선 | 321 | 충무로 | 2 | 0 | 20190202 |
17856 | 20190131 | 분당선 | 1031 | 복정 | 2 | 0 | 20190203 |
17945 | 20190131 | 경원선 | 1022 | 창동 | 2 | 0 | 20190203 |
18242 | 20190131 | 3호선 | 321 | 충무로 | 4 | 0 | 20190203 |
106 rows × 7 columns
pd.DataFrame([[1,2],[3,None]])
0 | 1 | |
---|---|---|
0 | 1 | 2.0 |
1 | 3 | NaN |
data.isnull()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
0 | False | False | False | False | False | False | False |
1 | False | False | False | False | False | False | False |
2 | False | False | False | False | False | False | False |
3 | False | False | False | False | False | False | False |
4 | False | False | False | False | False | False | False |
5 | False | False | False | False | False | False | False |
6 | False | False | False | False | False | False | False |
7 | False | False | False | False | False | False | False |
8 | False | False | False | False | False | False | False |
9 | False | False | False | False | False | False | False |
10 | False | False | False | False | False | False | False |
11 | False | False | False | False | False | False | False |
12 | False | False | False | False | False | False | False |
13 | False | False | False | False | False | False | False |
14 | False | False | False | False | False | False | False |
15 | False | False | False | False | False | False | False |
16 | False | False | False | False | False | False | False |
17 | False | False | False | False | False | False | False |
18 | False | False | False | False | False | False | False |
19 | False | False | False | False | False | False | False |
20 | False | False | False | False | False | False | False |
21 | False | False | False | False | False | False | False |
22 | False | False | False | False | False | False | False |
23 | False | False | False | False | False | False | False |
24 | False | False | False | False | False | False | False |
25 | False | False | False | False | False | False | False |
26 | False | False | False | False | False | False | False |
27 | False | False | False | False | False | False | False |
28 | False | False | False | False | False | False | False |
29 | False | False | False | False | False | False | False |
... | ... | ... | ... | ... | ... | ... | ... |
18304 | False | False | False | False | False | False | False |
18305 | False | False | False | False | False | False | False |
18306 | False | False | False | False | False | False | False |
18307 | False | False | False | False | False | False | False |
18308 | False | False | False | False | False | False | False |
18309 | False | False | False | False | False | False | False |
18310 | False | False | False | False | False | False | False |
18311 | False | False | False | False | False | False | False |
18312 | False | False | False | False | False | False | False |
18313 | False | False | False | False | False | False | False |
18314 | False | False | False | False | False | False | False |
18315 | False | False | False | False | False | False | False |
18316 | False | False | False | False | False | False | False |
18317 | False | False | False | False | False | False | False |
18318 | False | False | False | False | False | False | False |
18319 | False | False | False | False | False | False | False |
18320 | False | False | False | False | False | False | False |
18321 | False | False | False | False | False | False | False |
18322 | False | False | False | False | False | False | False |
18323 | False | False | False | False | False | False | False |
18324 | False | False | False | False | False | False | False |
18325 | False | False | False | False | False | False | False |
18326 | False | False | False | False | False | False | False |
18327 | False | False | False | False | False | False | False |
18328 | False | False | False | False | False | False | False |
18329 | False | False | False | False | False | False | False |
18330 | False | False | False | False | False | False | False |
18331 | False | False | False | False | False | False | False |
18332 | False | False | False | False | False | False | False |
18333 | False | False | False | False | False | False | False |
18334 rows × 7 columns
data[['승차총승객수','하차총승객수']].mean()
승차총승객수 12100.360751 하차총승객수 12048.564143 dtype: float64
data.notnull().sum() #판다스의 sum은 칼럼단위이다.
사용일자 18334 노선명 18334 역ID 18334 역명 18334 승차총승객수 18334 하차총승객수 18334 등록일자 18334 dtype: int64
# ser.name, df.index.name, df.columns.name
pd.to_datetime(['20190308']) # 대부분의 날짜형식은 datetime을 이용해 바꿔줄수 있다.
pd.to_datetime([20190308])
DatetimeIndex(['1970-01-01 00:00:00.020190308'], dtype='datetime64[ns]', freq=None)
data2 = data.copy()
# data2['year'] = data2.사용일자//10000
# data2['month'] = (data2.사용일자%10000)//100
# data2['day'] = data2.사용일자%100
# import calendar
#data2['wday'] = data2.apply(lambda ser: calendar.weekday(ser.year, ser.month, ser.day),axis=1)
# ser은 행 중에서 찾는다는 것을 의미한다.
#apply는 열 단위로 읽는다. applymap은 항목을 하나하나 처리한다.
theday = pd.to_datetime(data2.사용일자, format='%Y%m%d')
theday
0 2019-01-01 1 2019-01-01 2 2019-01-01 3 2019-01-01 4 2019-01-01 5 2019-01-01 6 2019-01-01 7 2019-01-01 8 2019-01-01 9 2019-01-01 10 2019-01-01 11 2019-01-01 12 2019-01-01 13 2019-01-01 14 2019-01-01 15 2019-01-01 16 2019-01-01 17 2019-01-01 18 2019-01-01 19 2019-01-01 20 2019-01-01 21 2019-01-01 22 2019-01-01 23 2019-01-01 24 2019-01-01 25 2019-01-01 26 2019-01-01 27 2019-01-01 28 2019-01-01 29 2019-01-01 ... 18304 2019-01-31 18305 2019-01-31 18306 2019-01-31 18307 2019-01-31 18308 2019-01-31 18309 2019-01-31 18310 2019-01-31 18311 2019-01-31 18312 2019-01-31 18313 2019-01-31 18314 2019-01-31 18315 2019-01-31 18316 2019-01-31 18317 2019-01-31 18318 2019-01-31 18319 2019-01-31 18320 2019-01-31 18321 2019-01-31 18322 2019-01-31 18323 2019-01-31 18324 2019-01-31 18325 2019-01-31 18326 2019-01-31 18327 2019-01-31 18328 2019-01-31 18329 2019-01-31 18330 2019-01-31 18331 2019-01-31 18332 2019-01-31 18333 2019-01-31 Name: 사용일자, Length: 18334, dtype: datetime64[ns]
data2['year'] = theday.dt.year
data2['month'] = theday.dt.month
data2['day'] = theday.dt.day
wday={0:'월', 1:'화', 2:'수', 3:'목', 4:'금', 5:'토', 6:'일'}
data2['wday'] = theday.dt.dayofweek.map(wday) # map함수는 값을 하나하나 바꿔준다.
data2.tail()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | year | month | day | wday | |
---|---|---|---|---|---|---|---|---|---|---|---|
18329 | 20190131 | 1호선 | 155 | 동대문 | 14563 | 15139 | 20190203 | 2019 | 1 | 31 | 목 |
18330 | 20190131 | 1호선 | 154 | 종로5가 | 30249 | 29703 | 20190203 | 2019 | 1 | 31 | 목 |
18331 | 20190131 | 1호선 | 153 | 종로3가 | 36804 | 35050 | 20190203 | 2019 | 1 | 31 | 목 |
18332 | 20190131 | 1호선 | 152 | 종각 | 51970 | 50080 | 20190203 | 2019 | 1 | 31 | 목 |
18333 | 20190131 | 1호선 | 151 | 시청 | 29059 | 29169 | 20190203 | 2019 | 1 | 31 | 목 |
data3 = data2.drop('year', axis=1)[:3] # return new DataFrame
data3
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | month | day | wday | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 | 1 | 1 | 화 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 | 1 | 1 | 화 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 | 1 | 1 | 화 |
data2[data2.day==31].head()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | year | month | day | wday | |
---|---|---|---|---|---|---|---|---|---|---|---|
17743 | 20190131 | 과천선 | 1450 | 선바위 | 10584 | 8356 | 20190203 | 2019 | 1 | 31 | 목 |
17744 | 20190131 | 8호선 | 2821 | 복정 | 12066 | 9845 | 20190203 | 2019 | 1 | 31 | 목 |
17745 | 20190131 | 8호선 | 2822 | 산성 | 5864 | 5624 | 20190203 | 2019 | 1 | 31 | 목 |
17746 | 20190131 | 8호선 | 2823 | 남한산성입구(성남법원.검찰청) | 14838 | 13285 | 20190203 | 2019 | 1 | 31 | 목 |
17747 | 20190131 | 8호선 | 2824 | 단대오거리 | 11850 | 11518 | 20190203 | 2019 | 1 | 31 | 목 |
data2[data2.day==31][2:3]
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | year | month | day | wday | |
---|---|---|---|---|---|---|---|---|---|---|---|
17745 | 20190131 | 8호선 | 2822 | 산성 | 5864 | 5624 | 20190203 | 2019 | 1 | 31 | 목 |
(data2 > 10000)[:5]
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | year | month | day | |
---|---|---|---|---|---|---|---|---|---|---|
0 | True | True | False | True | False | False | True | False | False | False |
1 | True | True | False | True | False | False | True | False | False | False |
2 | True | True | False | True | False | False | True | False | False | False |
3 | True | True | False | True | False | False | True | False | False | False |
4 | True | True | False | True | False | False | True | False | False | False |
data2[['승차총승객수','하차총승객수']] # DataFrame - Series
승차총승객수 | 하차총승객수 | |
---|---|---|
0 | 1520 | 1436 |
1 | 275 | 114 |
2 | 1509 | 1083 |
3 | 357 | 271 |
4 | 1772 | 1963 |
5 | 787 | 765 |
6 | 2649 | 2661 |
7 | 734 | 726 |
8 | 1347 | 1534 |
9 | 1542 | 1516 |
10 | 1321 | 1232 |
11 | 1068 | 954 |
12 | 24321 | 24169 |
13 | 13653 | 14049 |
14 | 7126 | 6603 |
15 | 11366 | 11785 |
16 | 1 | 0 |
17 | 3860 | 4170 |
18 | 729 | 659 |
19 | 719 | 1761 |
20 | 4346 | 5071 |
21 | 2311 | 2469 |
22 | 2572 | 2670 |
23 | 2377 | 2265 |
24 | 3252 | 3199 |
25 | 3725 | 3768 |
26 | 2476 | 2508 |
27 | 2606 | 2497 |
28 | 215 | 209 |
29 | 1748 | 1700 |
... | ... | ... |
18304 | 63414 | 69744 |
18305 | 69459 | 61644 |
18306 | 65186 | 67747 |
18307 | 10254 | 10959 |
18308 | 27967 | 27937 |
18309 | 89355 | 85642 |
18310 | 20006 | 19265 |
18311 | 44302 | 44291 |
18312 | 28067 | 26975 |
18313 | 44899 | 49051 |
18314 | 34567 | 37720 |
18315 | 21130 | 22598 |
18316 | 8791 | 9700 |
18317 | 20764 | 17129 |
18318 | 16668 | 15952 |
18319 | 16242 | 16890 |
18320 | 17863 | 20145 |
18321 | 13946 | 13843 |
18322 | 26344 | 26216 |
18323 | 55692 | 56015 |
18324 | 29981 | 29575 |
18325 | 9483 | 9727 |
18326 | 29384 | 30328 |
18327 | 25142 | 26221 |
18328 | 18001 | 17784 |
18329 | 14563 | 15139 |
18330 | 30249 | 29703 |
18331 | 36804 | 35050 |
18332 | 51970 | 50080 |
18333 | 29059 | 29169 |
18334 rows × 2 columns
data2[['승차총승객수','하차총승객수']] - [10000,10000] # DataFrame - Series
승차총승객수 | 하차총승객수 | |
---|---|---|
0 | -8480 | -8564 |
1 | -9725 | -9886 |
2 | -8491 | -8917 |
3 | -9643 | -9729 |
4 | -8228 | -8037 |
5 | -9213 | -9235 |
6 | -7351 | -7339 |
7 | -9266 | -9274 |
8 | -8653 | -8466 |
9 | -8458 | -8484 |
10 | -8679 | -8768 |
11 | -8932 | -9046 |
12 | 14321 | 14169 |
13 | 3653 | 4049 |
14 | -2874 | -3397 |
15 | 1366 | 1785 |
16 | -9999 | -10000 |
17 | -6140 | -5830 |
18 | -9271 | -9341 |
19 | -9281 | -8239 |
20 | -5654 | -4929 |
21 | -7689 | -7531 |
22 | -7428 | -7330 |
23 | -7623 | -7735 |
24 | -6748 | -6801 |
25 | -6275 | -6232 |
26 | -7524 | -7492 |
27 | -7394 | -7503 |
28 | -9785 | -9791 |
29 | -8252 | -8300 |
... | ... | ... |
18304 | 53414 | 59744 |
18305 | 59459 | 51644 |
18306 | 55186 | 57747 |
18307 | 254 | 959 |
18308 | 17967 | 17937 |
18309 | 79355 | 75642 |
18310 | 10006 | 9265 |
18311 | 34302 | 34291 |
18312 | 18067 | 16975 |
18313 | 34899 | 39051 |
18314 | 24567 | 27720 |
18315 | 11130 | 12598 |
18316 | -1209 | -300 |
18317 | 10764 | 7129 |
18318 | 6668 | 5952 |
18319 | 6242 | 6890 |
18320 | 7863 | 10145 |
18321 | 3946 | 3843 |
18322 | 16344 | 16216 |
18323 | 45692 | 46015 |
18324 | 19981 | 19575 |
18325 | -517 | -273 |
18326 | 19384 | 20328 |
18327 | 15142 | 16221 |
18328 | 8001 | 7784 |
18329 | 4563 | 5139 |
18330 | 20249 | 19703 |
18331 | 26804 | 25050 |
18332 | 41970 | 40080 |
18333 | 19059 | 19169 |
18334 rows × 2 columns
data3 = data2[['승차총승객수','하차총승객수']]
data3[:3]
승차총승객수 | 하차총승객수 | |
---|---|---|
0 | 1520 | 1436 |
1 | 275 | 114 |
2 | 1509 | 1083 |
np.maximum(data3,10000)
승차총승객수 | 하차총승객수 | |
---|---|---|
0 | 10000 | 10000 |
1 | 10000 | 10000 |
2 | 10000 | 10000 |
3 | 10000 | 10000 |
4 | 10000 | 10000 |
5 | 10000 | 10000 |
6 | 10000 | 10000 |
7 | 10000 | 10000 |
8 | 10000 | 10000 |
9 | 10000 | 10000 |
10 | 10000 | 10000 |
11 | 10000 | 10000 |
12 | 24321 | 24169 |
13 | 13653 | 14049 |
14 | 10000 | 10000 |
15 | 11366 | 11785 |
16 | 10000 | 10000 |
17 | 10000 | 10000 |
18 | 10000 | 10000 |
19 | 10000 | 10000 |
20 | 10000 | 10000 |
21 | 10000 | 10000 |
22 | 10000 | 10000 |
23 | 10000 | 10000 |
24 | 10000 | 10000 |
25 | 10000 | 10000 |
26 | 10000 | 10000 |
27 | 10000 | 10000 |
28 | 10000 | 10000 |
29 | 10000 | 10000 |
... | ... | ... |
18304 | 63414 | 69744 |
18305 | 69459 | 61644 |
18306 | 65186 | 67747 |
18307 | 10254 | 10959 |
18308 | 27967 | 27937 |
18309 | 89355 | 85642 |
18310 | 20006 | 19265 |
18311 | 44302 | 44291 |
18312 | 28067 | 26975 |
18313 | 44899 | 49051 |
18314 | 34567 | 37720 |
18315 | 21130 | 22598 |
18316 | 10000 | 10000 |
18317 | 20764 | 17129 |
18318 | 16668 | 15952 |
18319 | 16242 | 16890 |
18320 | 17863 | 20145 |
18321 | 13946 | 13843 |
18322 | 26344 | 26216 |
18323 | 55692 | 56015 |
18324 | 29981 | 29575 |
18325 | 10000 | 10000 |
18326 | 29384 | 30328 |
18327 | 25142 | 26221 |
18328 | 18001 | 17784 |
18329 | 14563 | 15139 |
18330 | 30249 | 29703 |
18331 | 36804 | 35050 |
18332 | 51970 | 50080 |
18333 | 29059 | 29169 |
18334 rows × 2 columns
data3.apply(np.sin)
승차총승객수 | 하차총승객수 | |
---|---|---|
0 | -0.506262 | -0.288019 |
1 | -0.993885 | 0.784980 |
2 | 0.860131 | 0.750928 |
3 | -0.909285 | 0.733211 |
4 | 0.141269 | 0.475391 |
5 | 0.999518 | -0.999754 |
6 | -0.595102 | -0.070963 |
7 | -0.905553 | -0.287961 |
8 | 0.676683 | 0.785055 |
9 | 0.498609 | 0.983566 |
10 | 0.999212 | 0.475630 |
11 | -0.141030 | -0.864506 |
12 | -0.935730 | -0.665166 |
13 | -0.353839 | -0.200969 |
14 | 0.762948 | -0.587332 |
15 | -0.278489 | -0.774520 |
16 | 0.841471 | 0.000000 |
17 | 0.850729 | -0.894159 |
18 | 0.149937 | -0.670184 |
19 | 0.412064 | 0.990587 |
20 | -0.923597 | 0.452402 |
21 | -0.936388 | -0.287701 |
22 | 0.821698 | -0.346423 |
23 | 0.926739 | 0.088189 |
24 | -0.436409 | 0.756980 |
25 | -0.800954 | -0.942625 |
26 | 0.412311 | 0.846333 |
27 | -0.998805 | 0.536395 |
28 | 0.980246 | 0.996467 |
29 | 0.956420 | -0.387921 |
... | ... | ... |
18304 | -0.814744 | 0.599671 |
18305 | -0.999085 | -0.325035 |
18306 | -0.888484 | 0.992170 |
18307 | -0.157759 | 0.902192 |
18308 | 0.516020 | 0.925922 |
18309 | 0.968677 | 0.817657 |
18310 | 0.331584 | 0.684449 |
18311 | -0.673993 | 0.735747 |
18312 | 0.011233 | 0.959572 |
18313 | -0.598963 | -0.967183 |
18314 | -0.056003 | 0.892560 |
18315 | -0.344952 | -0.500384 |
18316 | 0.733703 | -0.945170 |
18317 | -0.937074 | 0.860807 |
18318 | -0.961007 | -0.845497 |
18319 | -0.034012 | 0.715887 |
18320 | -0.095682 | 0.894765 |
18321 | -0.453074 | 0.909786 |
18322 | -0.984761 | 0.556938 |
18323 | -0.834393 | 0.392167 |
18324 | -0.704208 | 0.046742 |
18325 | 0.994744 | 0.588453 |
18326 | -0.631829 | -0.804883 |
18327 | 0.165245 | 0.954421 |
18328 | -0.320166 | 0.527803 |
18329 | -0.989178 | 0.328767 |
18330 | 0.984703 | 0.687862 |
18331 | -0.239706 | 0.681080 |
18332 | 0.979360 | 0.128138 |
18333 | -0.668393 | 0.634830 |
18334 rows × 2 columns
data3.apply(lambda ser: ser.max() - ser.min())
승차총승객수 132726 하차총승객수 137826 dtype: int64
data3.apply(lambda ser: pd.Series([ser.max(), ser.min(), ser.mean(), ser.std()]))
승차총승객수 | 하차총승객수 | |
---|---|---|
0 | 132727.000000 | 137826.000000 |
1 | 1.000000 | 0.000000 |
2 | 12100.360751 | 12048.564143 |
3 | 12968.981816 | 13155.849968 |
data3 - data3.min()
승차총승객수 | 하차총승객수 | |
---|---|---|
0 | 1519 | 1436 |
1 | 274 | 114 |
2 | 1508 | 1083 |
3 | 356 | 271 |
4 | 1771 | 1963 |
5 | 786 | 765 |
6 | 2648 | 2661 |
7 | 733 | 726 |
8 | 1346 | 1534 |
9 | 1541 | 1516 |
10 | 1320 | 1232 |
11 | 1067 | 954 |
12 | 24320 | 24169 |
13 | 13652 | 14049 |
14 | 7125 | 6603 |
15 | 11365 | 11785 |
16 | 0 | 0 |
17 | 3859 | 4170 |
18 | 728 | 659 |
19 | 718 | 1761 |
20 | 4345 | 5071 |
21 | 2310 | 2469 |
22 | 2571 | 2670 |
23 | 2376 | 2265 |
24 | 3251 | 3199 |
25 | 3724 | 3768 |
26 | 2475 | 2508 |
27 | 2605 | 2497 |
28 | 214 | 209 |
29 | 1747 | 1700 |
... | ... | ... |
18304 | 63413 | 69744 |
18305 | 69458 | 61644 |
18306 | 65185 | 67747 |
18307 | 10253 | 10959 |
18308 | 27966 | 27937 |
18309 | 89354 | 85642 |
18310 | 20005 | 19265 |
18311 | 44301 | 44291 |
18312 | 28066 | 26975 |
18313 | 44898 | 49051 |
18314 | 34566 | 37720 |
18315 | 21129 | 22598 |
18316 | 8790 | 9700 |
18317 | 20763 | 17129 |
18318 | 16667 | 15952 |
18319 | 16241 | 16890 |
18320 | 17862 | 20145 |
18321 | 13945 | 13843 |
18322 | 26343 | 26216 |
18323 | 55691 | 56015 |
18324 | 29980 | 29575 |
18325 | 9482 | 9727 |
18326 | 29383 | 30328 |
18327 | 25141 | 26221 |
18328 | 18000 | 17784 |
18329 | 14562 | 15139 |
18330 | 30248 | 29703 |
18331 | 36803 | 35050 |
18332 | 51969 | 50080 |
18333 | 29058 | 29169 |
18334 rows × 2 columns
data3.apply(lambda col: col - col.min(), axis=1)
승차총승객수 | 하차총승객수 | |
---|---|---|
0 | 84 | 0 |
1 | 161 | 0 |
2 | 426 | 0 |
3 | 86 | 0 |
4 | 0 | 191 |
5 | 22 | 0 |
6 | 0 | 12 |
7 | 8 | 0 |
8 | 0 | 187 |
9 | 26 | 0 |
10 | 89 | 0 |
11 | 114 | 0 |
12 | 152 | 0 |
13 | 0 | 396 |
14 | 523 | 0 |
15 | 0 | 419 |
16 | 1 | 0 |
17 | 0 | 310 |
18 | 70 | 0 |
19 | 0 | 1042 |
20 | 0 | 725 |
21 | 0 | 158 |
22 | 0 | 98 |
23 | 112 | 0 |
24 | 53 | 0 |
25 | 0 | 43 |
26 | 0 | 32 |
27 | 109 | 0 |
28 | 6 | 0 |
29 | 48 | 0 |
... | ... | ... |
18304 | 0 | 6330 |
18305 | 7815 | 0 |
18306 | 0 | 2561 |
18307 | 0 | 705 |
18308 | 30 | 0 |
18309 | 3713 | 0 |
18310 | 741 | 0 |
18311 | 11 | 0 |
18312 | 1092 | 0 |
18313 | 0 | 4152 |
18314 | 0 | 3153 |
18315 | 0 | 1468 |
18316 | 0 | 909 |
18317 | 3635 | 0 |
18318 | 716 | 0 |
18319 | 0 | 648 |
18320 | 0 | 2282 |
18321 | 103 | 0 |
18322 | 128 | 0 |
18323 | 0 | 323 |
18324 | 406 | 0 |
18325 | 0 | 244 |
18326 | 0 | 944 |
18327 | 0 | 1079 |
18328 | 217 | 0 |
18329 | 0 | 576 |
18330 | 546 | 0 |
18331 | 1754 | 0 |
18332 | 1890 | 0 |
18333 | 0 | 110 |
18334 rows × 2 columns
data3.applymap(lambda x: x//10000)
승차총승객수 | 하차총승객수 | |
---|---|---|
0 | 0 | 0 |
1 | 0 | 0 |
2 | 0 | 0 |
3 | 0 | 0 |
4 | 0 | 0 |
5 | 0 | 0 |
6 | 0 | 0 |
7 | 0 | 0 |
8 | 0 | 0 |
9 | 0 | 0 |
10 | 0 | 0 |
11 | 0 | 0 |
12 | 2 | 2 |
13 | 1 | 1 |
14 | 0 | 0 |
15 | 1 | 1 |
16 | 0 | 0 |
17 | 0 | 0 |
18 | 0 | 0 |
19 | 0 | 0 |
20 | 0 | 0 |
21 | 0 | 0 |
22 | 0 | 0 |
23 | 0 | 0 |
24 | 0 | 0 |
25 | 0 | 0 |
26 | 0 | 0 |
27 | 0 | 0 |
28 | 0 | 0 |
29 | 0 | 0 |
... | ... | ... |
18304 | 6 | 6 |
18305 | 6 | 6 |
18306 | 6 | 6 |
18307 | 1 | 1 |
18308 | 2 | 2 |
18309 | 8 | 8 |
18310 | 2 | 1 |
18311 | 4 | 4 |
18312 | 2 | 2 |
18313 | 4 | 4 |
18314 | 3 | 3 |
18315 | 2 | 2 |
18316 | 0 | 0 |
18317 | 2 | 1 |
18318 | 1 | 1 |
18319 | 1 | 1 |
18320 | 1 | 2 |
18321 | 1 | 1 |
18322 | 2 | 2 |
18323 | 5 | 5 |
18324 | 2 | 2 |
18325 | 0 | 0 |
18326 | 2 | 3 |
18327 | 2 | 2 |
18328 | 1 | 1 |
18329 | 1 | 1 |
18330 | 3 | 2 |
18331 | 3 | 3 |
18332 | 5 | 5 |
18333 | 2 | 2 |
18334 rows × 2 columns
- Series.apply()
- Series.map()
- DataFrame.apply() # for each column
- DataFrame.applymap() # for each value
data.sort_values('승차총승객수', ascending=False)
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
5960 | 20190111 | 2호선 | 222 | 강남 | 132727 | 137826 | 20190114 |
14310 | 20190125 | 2호선 | 222 | 강남 | 131976 | 136614 | 20190128 |
10306 | 20190118 | 2호선 | 222 | 강남 | 130864 | 136701 | 20190121 |
1844 | 20190104 | 2호선 | 222 | 강남 | 129878 | 134948 | 20190107 |
5591 | 20190110 | 2호선 | 222 | 강남 | 124860 | 124336 | 20190113 |
9379 | 20190116 | 2호선 | 222 | 강남 | 124782 | 124193 | 20190119 |
13377 | 20190123 | 2호선 | 222 | 강남 | 124516 | 125097 | 20190126 |
14160 | 20190124 | 2호선 | 222 | 강남 | 124412 | 125178 | 20190127 |
10020 | 20190117 | 2호선 | 222 | 강남 | 124182 | 125391 | 20190120 |
5223 | 20190109 | 2호선 | 222 | 강남 | 123657 | 122365 | 20190112 |
4291 | 20190108 | 2호선 | 222 | 강남 | 123559 | 123099 | 20190111 |
8761 | 20190115 | 2호선 | 222 | 강남 | 122593 | 121979 | 20190118 |
1740 | 20190103 | 2호선 | 222 | 강남 | 122254 | 122889 | 20190106 |
12762 | 20190122 | 2호선 | 222 | 강남 | 122092 | 121935 | 20190125 |
3730 | 20190107 | 2호선 | 222 | 강남 | 121527 | 121092 | 20190110 |
17012 | 20190129 | 2호선 | 222 | 강남 | 120636 | 120632 | 20190201 |
8263 | 20190114 | 2호선 | 222 | 강남 | 118984 | 119047 | 20190117 |
12384 | 20190121 | 2호선 | 222 | 강남 | 118767 | 119423 | 20190124 |
16015 | 20190128 | 2호선 | 222 | 강남 | 118690 | 118726 | 20190131 |
17713 | 20190130 | 2호선 | 222 | 강남 | 118278 | 118613 | 20190202 |
18303 | 20190131 | 2호선 | 222 | 강남 | 116722 | 117092 | 20190203 |
612 | 20190102 | 2호선 | 222 | 강남 | 116550 | 116482 | 20190105 |
15322 | 20190126 | 2호선 | 239 | 홍대입구 | 101250 | 114445 | 20190129 |
10300 | 20190118 | 2호선 | 216 | 잠실(송파구청) | 97378 | 92987 | 20190121 |
14304 | 20190125 | 2호선 | 216 | 잠실(송파구청) | 97301 | 92983 | 20190128 |
1799 | 20190104 | 2호선 | 216 | 잠실(송파구청) | 95791 | 92454 | 20190107 |
5954 | 20190111 | 2호선 | 216 | 잠실(송파구청) | 95124 | 91752 | 20190114 |
6632 | 20190112 | 2호선 | 239 | 홍대입구 | 94280 | 107908 | 20190115 |
15339 | 20190126 | 2호선 | 222 | 강남 | 94215 | 100006 | 20190129 |
6649 | 20190112 | 2호선 | 222 | 강남 | 94172 | 100223 | 20190115 |
... | ... | ... | ... | ... | ... | ... | ... |
7323 | 20190113 | 경의선 | 1291 | 서울역 | 1 | 0 | 20190116 |
17204 | 20190130 | 경의선 | 1291 | 서울역 | 1 | 0 | 20190202 |
12287 | 20190121 | 경의선 | 1297 | 검암 | 1 | 0 | 20190124 |
12009 | 20190121 | 일산선 | 1949 | 지축 | 1 | 0 | 20190124 |
13336 | 20190123 | 3호선 | 321 | 충무로 | 1 | 0 | 20190126 |
9564 | 20190117 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190120 |
13481 | 20190123 | 경의선 | 1295 | 김포공항 | 1 | 0 | 20190126 |
13746 | 20190124 | 경의선 | 1291 | 서울역 | 1 | 0 | 20190127 |
10061 | 20190118 | 경원선 | 1022 | 창동 | 1 | 0 | 20190121 |
16193 | 20190128 | 경의선 | 1296 | 계양 | 1 | 0 | 20190131 |
3842 | 20190107 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190110 |
3685 | 20190107 | 분당선 | 1031 | 복정 | 1 | 0 | 20190110 |
15641 | 20190127 | 경의선 | 1291 | 서울역 | 1 | 0 | 20190130 |
4245 | 20190108 | 경의선 | 1293 | 홍대입구 | 1 | 0 | 20190111 |
3138 | 20190106 | 경의선 | 1295 | 김포공항 | 1 | 0 | 20190109 |
16852 | 20190129 | 경의선 | 1295 | 김포공항 | 1 | 0 | 20190201 |
15640 | 20190127 | 경의선 | 1296 | 계양 | 1 | 0 | 20190130 |
8134 | 20190114 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190117 |
12329 | 20190121 | 경원선 | 1022 | 창동 | 1 | 0 | 20190124 |
15483 | 20190127 | 분당선 | 1031 | 복정 | 1 | 0 | 20190130 |
9875 | 20190117 | 분당선 | 1031 | 복정 | 1 | 0 | 20190120 |
7411 | 20190113 | 3호선 | 321 | 충무로 | 1 | 0 | 20190116 |
6608 | 20190112 | 3호선 | 321 | 충무로 | 1 | 0 | 20190115 |
7083 | 20190112 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190115 |
10258 | 20190118 | 경의선 | 1295 | 김포공항 | 1 | 0 | 20190121 |
10956 | 20190119 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190122 |
2255 | 20190104 | 분당선 | 1031 | 복정 | 1 | 0 | 20190107 |
7540 | 20190113 | 6호선 | 2615 | 연신내 | 1 | 0 | 20190116 |
7032 | 20190112 | 경의선 | 1295 | 김포공항 | 1 | 0 | 20190115 |
8146 | 20190114 | 3호선 | 321 | 충무로 | 1 | 0 | 20190117 |
18334 rows × 7 columns
data3.sort_values('승차총승객수', ascending=False)
승차총승객수 | 하차총승객수 | |
---|---|---|
5960 | 132727 | 137826 |
14310 | 131976 | 136614 |
10306 | 130864 | 136701 |
1844 | 129878 | 134948 |
5591 | 124860 | 124336 |
9379 | 124782 | 124193 |
13377 | 124516 | 125097 |
14160 | 124412 | 125178 |
10020 | 124182 | 125391 |
5223 | 123657 | 122365 |
4291 | 123559 | 123099 |
8761 | 122593 | 121979 |
1740 | 122254 | 122889 |
12762 | 122092 | 121935 |
3730 | 121527 | 121092 |
17012 | 120636 | 120632 |
8263 | 118984 | 119047 |
12384 | 118767 | 119423 |
16015 | 118690 | 118726 |
17713 | 118278 | 118613 |
18303 | 116722 | 117092 |
612 | 116550 | 116482 |
15322 | 101250 | 114445 |
10300 | 97378 | 92987 |
14304 | 97301 | 92983 |
1799 | 95791 | 92454 |
5954 | 95124 | 91752 |
6632 | 94280 | 107908 |
15339 | 94215 | 100006 |
6649 | 94172 | 100223 |
... | ... | ... |
7323 | 1 | 0 |
17204 | 1 | 0 |
12287 | 1 | 0 |
12009 | 1 | 0 |
13336 | 1 | 0 |
9564 | 1 | 0 |
13481 | 1 | 0 |
13746 | 1 | 0 |
10061 | 1 | 0 |
16193 | 1 | 0 |
3842 | 1 | 0 |
3685 | 1 | 0 |
15641 | 1 | 0 |
4245 | 1 | 0 |
3138 | 1 | 0 |
16852 | 1 | 0 |
15640 | 1 | 0 |
8134 | 1 | 0 |
12329 | 1 | 0 |
15483 | 1 | 0 |
9875 | 1 | 0 |
7411 | 1 | 0 |
6608 | 1 | 0 |
7083 | 1 | 0 |
10258 | 1 | 0 |
10956 | 1 | 0 |
2255 | 1 | 0 |
7540 | 1 | 0 |
7032 | 1 | 0 |
8146 | 1 | 0 |
18334 rows × 2 columns
data3.idxmax()
승차총승객수 5960 하차총승객수 5960 dtype: int64
data3.iloc[5960] # iloc 특정행의 정보를 가져오겠다.
승차총승객수 132727 하차총승객수 137826 Name: 5960, dtype: int64
data.iloc[:10, [0,3]]
사용일자 | 역명 | |
---|---|---|
0 | 20190101 | 가평 |
1 | 20190101 | 상천 |
2 | 20190101 | 청평 |
3 | 20190101 | 대성리 |
4 | 20190101 | 마석 |
5 | 20190101 | 천마산 |
6 | 20190101 | 평내호평 |
7 | 20190101 | 금곡 |
8 | 20190101 | 사릉 |
9 | 20190101 | 퇴계원 |
1 - (2 - 3)
help(data.count)
Help on method count in module pandas.core.frame: count(axis=0, level=None, numeric_only=False) method of pandas.core.frame.DataFrame instance Count non-NA cells for each column or row. The values `None`, `NaN`, `NaT`, and optionally `numpy.inf` (depending on `pandas.options.mode.use_inf_as_na`) are considered NA. Parameters ---------- axis : {0 or 'index', 1 or 'columns'}, default 0 If 0 or 'index' counts are generated for each column. If 1 or 'columns' counts are generated for each **row**. level : int or str, optional If the axis is a `MultiIndex` (hierarchical), count along a particular `level`, collapsing into a `DataFrame`. A `str` specifies the level name. numeric_only : boolean, default False Include only `float`, `int` or `boolean` data. Returns ------- Series or DataFrame For each column/row the number of non-NA/null entries. If `level` is specified returns a `DataFrame`. See Also -------- Series.count: number of non-NA elements in a Series DataFrame.shape: number of DataFrame rows and columns (including NA elements) DataFrame.isna: boolean same-sized DataFrame showing places of NA elements Examples -------- Constructing DataFrame from a dictionary: >>> df = pd.DataFrame({"Person": ... ["John", "Myla", None, "John", "Myla"], ... "Age": [24., np.nan, 21., 33, 26], ... "Single": [False, True, True, True, False]}) >>> df Person Age Single 0 John 24.0 False 1 Myla NaN True 2 None 21.0 True 3 John 33.0 True 4 Myla 26.0 False Notice the uncounted NA values: >>> df.count() Person 4 Age 4 Single 5 dtype: int64 Counts for each **row**: >>> df.count(axis='columns') 0 3 1 2 2 2 3 3 4 3 dtype: int64 Counts for one level of a `MultiIndex`: >>> df.set_index(["Person", "Single"]).count(level="Person") Age Person John 2 Myla 1
#data[data.isnull()] = 0
data.count()
사용일자 18334 노선명 18334 역ID 18334 역명 18334 승차총승객수 18334 하차총승객수 18334 등록일자 18334 dtype: int64
Datetime 으로 변환¶
pd.to_datetime(data.사용일자,format='%Y%m%d') # data.사용일자.astype(str) 으로 변환하지 않아도 됨
0 2019-01-01 1 2019-01-01 2 2019-01-01 3 2019-01-01 4 2019-01-01 5 2019-01-01 6 2019-01-01 7 2019-01-01 8 2019-01-01 9 2019-01-01 10 2019-01-01 11 2019-01-01 12 2019-01-01 13 2019-01-01 14 2019-01-01 15 2019-01-01 16 2019-01-01 17 2019-01-01 18 2019-01-01 19 2019-01-01 20 2019-01-01 21 2019-01-01 22 2019-01-01 23 2019-01-01 24 2019-01-01 25 2019-01-01 26 2019-01-01 27 2019-01-01 28 2019-01-01 29 2019-01-01 ... 18304 2019-01-31 18305 2019-01-31 18306 2019-01-31 18307 2019-01-31 18308 2019-01-31 18309 2019-01-31 18310 2019-01-31 18311 2019-01-31 18312 2019-01-31 18313 2019-01-31 18314 2019-01-31 18315 2019-01-31 18316 2019-01-31 18317 2019-01-31 18318 2019-01-31 18319 2019-01-31 18320 2019-01-31 18321 2019-01-31 18322 2019-01-31 18323 2019-01-31 18324 2019-01-31 18325 2019-01-31 18326 2019-01-31 18327 2019-01-31 18328 2019-01-31 18329 2019-01-31 18330 2019-01-31 18331 2019-01-31 18332 2019-01-31 18333 2019-01-31 Name: 사용일자, Length: 18334, dtype: datetime64[ns]
data.역명.str.len()
0 2 1 2 2 2 3 3 4 2 5 3 6 4 7 2 8 2 9 3 10 2 11 2 12 2 13 2 14 3 15 2 16 2 17 2 18 2 19 2 20 2 21 2 22 2 23 2 24 2 25 2 26 2 27 2 28 2 29 2 .. 18304 2 18305 2 18306 8 18307 5 18308 4 18309 8 18310 4 18311 10 18312 8 18313 4 18314 2 18315 2 18316 3 18317 9 18318 4 18319 2 18320 9 18321 5 18322 5 18323 5 18324 2 18325 3 18326 12 18327 3 18328 3 18329 3 18330 4 18331 4 18332 2 18333 2 Name: 역명, Length: 18334, dtype: int64
상관관계¶
data3.corr()
승차총승객수 | 하차총승객수 | |
---|---|---|
승차총승객수 | 1.000000 | 0.994333 |
하차총승객수 | 0.994333 | 1.000000 |
data3.cov()
승차총승객수 | 하차총승객수 | |
---|---|---|
승차총승객수 | 1.681945e+08 | 1.696511e+08 |
하차총승객수 | 1.696511e+08 | 1.730764e+08 |
data.head() # data.tail()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 |
4 | 20190101 | 경춘선 | 1319 | 마석 | 1772 | 1963 | 20190104 |
data.노선명.unique() # numpy array 출력
array(['경춘선', '경인선', '경의선', '경원선', '경부선', '2호선', '경강선', '수인선', '분당선', '9호선2~3단계', '9호선', '8호선', '7호선', '6호선', '공항철도 1호선', '5호선', '4호선', '3호선', '1호선', '중앙선', '안산선', '우이신설선', '일산선', '장항선', '과천선'], dtype=object)
np.sort(data.역명.unique())
array(['4.19민주묘지', '가능', '가락시장', '가산디지털단지', '가양', '가오리', '가좌', '가천대', '가평', '간석', '갈매', '강남', '강남구청', '강동', '강동구청', '강매', '강변(동서울터미널)', '강촌', '개롱', '개봉', '개포동', '개화', '개화산', '거여', '건대입구', '검암', '경기광주', '경마공원', '경복궁(정부서울청사)', '경찰병원', '계양', '고덕', '고려대(종암)', '고속터미널', '고잔', '곡산', '곤지암', '공덕', '공릉(서울과학기술대)', '공항시장', '공항화물청사', '과천', '관악', '광나루(장신대)', '광명', '광명사거리', '광운대', '광화문(세종문화회관)', '광흥창(서강)', '교대(법원.검찰청)', '구로', '구로디지털단지', '구룡', '구리', '구반포', '구산', '구성', '구의(광진구청)', '구일', '구파발', '국수', '국회의사당', '군자(능동)', '군포', '굴봉산', '굴포천', '굽은다리(강동구민회관앞)', '금곡', '금릉', '금정', '금천구청', '금촌', '금호', '기흥', '길동', '길음', '김유정', '김포공항', '까치산', '까치울', '낙성대', '남구로', '남동인더스파크', '남부터미널(예술의전당)', '남성', '남영', '남춘천', '남태령', '남한산성입구(성남법원.검찰청)', '내방', '노들', '노량진', '노원', '녹번', '녹사평(용산구청)', '녹양', '녹천', '논현', '능곡', '단대오거리', '달월', '답십리', '당고개', '당산', '당정', '대곡', '대공원', '대림(구로구청)', '대모산입구', '대방', '대성리', '대야미', '대청', '대치', '대화', '대흥(서강대앞)', '덕계', '덕소', '덕정', '도곡', '도농', '도림천', '도봉', '도봉산', '도심', '도원', '도화', '독립문', '독바위', '독산', '돌곶이', '동대문', '동대문역사문화공원', '동대입구', '동두천', '동두천중앙', '동묘앞', '동암', '동인천', '동작(현충원)', '두정', '둔촌동', '둔촌오륜', '등촌', '디지털미디어시티', '뚝섬', '뚝섬유원지', '마곡', '마곡나루', '마두', '마들', '마석', '마장', '마천', '마포', '마포구청', '망우', '망원', '망월사', '망포', '매교', '매봉', '매탄권선', '먹골', '면목', '명동', '명일', '명학', '모란', '목동', '몽촌토성(평화의문)', '무악재', '문래', '문산', '문정', '미금', '미아(서울사이버대학)', '미아사거리', '반월', '반포', '발산', '방배', '방이', '방학', '방화', '배방', '백마', '백석', '백양리', '백운', '버티고개', '범계', '별내', '병점', '보라매', '보문', '보산', '보정', '복정', '봉명', '봉은사', '봉천', '봉화산(서울의료원)', '부개', '부발', '부천', '부천시청', '부천종합운동장', '부평', '부평구청', '북한산보국문', '북한산우이', '불광', '사가정', '사당', '사릉', '사평', '산본', '산성', '삼각지', '삼동', '삼산체육관', '삼성(무역센터)', '삼성중앙', '삼송', '삼양', '삼양사거리', '삼전', '상갈', '상계', '상도', '상동', '상록수', '상봉(시외버스터미널)', '상수', '상왕십리', '상월곡(한국과학기술연구원)', '상일동', '상천', '새절(신사)', '샛강', '서강대', '서대문', '서동탄', '서빙고', '서울대입구(관악구청)', '서울숲', '서울역', '서정리', '서초', '서현', '석계', '석수', '석촌', '석촌고분', '선릉', '선바위', '선유도', '선정릉', '성균관대', '성수', '성신여대입구(돈암)', '성환', '세류', '세마', '세종대왕릉', '소래포구', '소사', '소요산', '솔밭공원', '솔샘', '송내', '송도', '송정', '송탄', '송파', '송파나루', '수내', '수락산', '수리산', '수색', '수서', '수원', '수원시청', '수유(강북구청)', '수진', '숙대입구(갈월)', '숭실대입구(살피재)', '숭의', '시청', '신갈', '신금호', '신길', '신길온천', '신내', '신논현', '신답', '신당', '신대방', '신대방삼거리', '신도림', '신둔도예촌', '신림', '신목동', '신반포', '신방화', '신사', '신설동', '신용산', '신원', '신이문', '신정(은행정)', '신정네거리', '신중동', '신창(순천향대)', '신촌', '신포', '신풍', '신흥', '쌍문', '쌍용(나사렛대)', '아산', '아신', '아차산(어린이대공원후문)', '아현', '안국', '안산', '안암(고대병원앞)', '안양', '암사', '압구정', '압구정로데오', '애오개', '야당', '야탑', '약수', '양수', '양원', '양재(서초구청)', '양정', '양주', '양천구청', '양천향교', '양평', '어린이대공원(세종대)', '언주', '여의나루', '여의도', '여주', '역곡', '역삼', '역촌', '연수', '연신내', '염창', '영등포', '영등포구청', '영등포시장', '영종', '영통', '오금', '오류동', '오리', '오목교(목동운동장앞)', '오빈', '오산', '오산대', '오이도', '옥수', '온수(성공회대입구)', '온양온천', '올림픽공원(한국체대)', '왕십리(성동구청)', '외대앞', '용답', '용두(동대문구청)', '용마산', '용문', '용산', '우장산', '운길산', '운서', '운정', '원당', '원덕', '원인재', '원흥', '월계', '월곡(동덕여대)', '월곶', '월드컵경기장(성산)', '월롱', '을지로3가', '을지로4가', '을지로입구', '응봉', '응암', '의왕', '의정부', '이대', '이매', '이수', '이천', '이촌(국립중앙박물관)', '이태원', '인덕원', '인천', '인천공항1터미널', '인천공항2터미널', '인천논현', '인하대', '일산', '일원', '잠실(송파구청)', '잠실나루', '잠실새내', '잠원', '장승배기', '장암', '장지', '장한평', '정릉', '정발산', '정부과천청사', '정왕', '정자', '제기동', '제물포', '종각', '종로3가', '종로5가', '종합운동장', '주안', '주엽', '죽전', '중계', '중곡', '중동', '중랑', '중앙', '중앙보훈병원', '중화', '증미', '증산(명지대앞)', '지제', '지축', '지평', '지행', '직산', '진위', '창동', '창신', '천마산', '천안', '천왕', '천호(풍납토성)', '철산', '청구', '청담', '청라국제도시', '청량리(서울시립대입구)', '청명', '청평', '초월', '초지', '총신대입구(이수)', '춘의', '춘천', '충무로', '충정로(경기대입구)', '탄현', '태릉입구', '태평', '퇴계원', '파주', '판교', '팔당', '평내호평', '평촌', '평택', '풍산', '하계', '학동', '학여울', '한강진', '한남', '한대앞', '한성대입구(삼선교)', '한성백제', '한양대', '한티', '합정', '행당', '행신', '혜화', '호구포', '홍대입구', '홍제', '화계', '화곡', '화랑대(서울여대입구)', '화서', '화전', '화정', '회기', '회룡', '회현(남대문시장)', '효창공원앞', '흑석(중앙대입구)'], dtype=object)
data.노선명.value_counts()
5호선 1581 7호선 1581 2호선 1550 경부선 1209 6호선 1164 분당선 1071 3호선 1049 경원선 912 경의선 806 4호선 806 9호선 775 중앙선 651 경인선 620 경춘선 589 8호선 527 공항철도 1호선 434 수인선 403 9호선2~3단계 403 안산선 403 우이신설선 403 경강선 341 일산선 312 1호선 310 과천선 248 장항선 186 Name: 노선명, dtype: int64
s = data.역명.value_counts()
s[s%31 !=0]
서울역 164 김포공항 102 홍대입구 95 충무로 57 복정 48 연신내 48 창동 44 계양 38 검암 35 지축 33 Name: 역명, dtype: int64
data[data.역명=='서울역']
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
41 | 20190101 | 경의선 | 1251 | 서울역 | 1278 | 919 | 20190104 |
110 | 20190101 | 경부선 | 1001 | 서울역 | 5983 | 731 | 20190104 |
330 | 20190101 | 4호선 | 426 | 서울역 | 5689 | 13266 | 20190104 |
442 | 20190101 | 1호선 | 150 | 서울역 | 39420 | 31121 | 20190104 |
568 | 20190101 | 공항철도 1호선 | 4201 | 서울역 | 14043 | 9955 | 20190104 |
701 | 20190102 | 4호선 | 426 | 서울역 | 15111 | 22659 | 20190105 |
916 | 20190102 | 경부선 | 1001 | 서울역 | 6091 | 1049 | 20190105 |
984 | 20190102 | 경의선 | 1251 | 서울역 | 4232 | 5345 | 20190105 |
1049 | 20190102 | 공항철도 1호선 | 4201 | 서울역 | 14103 | 10718 | 20190105 |
1172 | 20190102 | 1호선 | 150 | 서울역 | 58404 | 52696 | 20190105 |
1314 | 20190103 | 공항철도 1호선 | 4201 | 서울역 | 12693 | 10044 | 20190106 |
1380 | 20190103 | 경의선 | 1251 | 서울역 | 4086 | 5327 | 20190106 |
1449 | 20190103 | 경부선 | 1001 | 서울역 | 4997 | 905 | 20190106 |
1660 | 20190103 | 4호선 | 426 | 서울역 | 14920 | 22519 | 20190106 |
1770 | 20190103 | 1호선 | 150 | 서울역 | 57623 | 53216 | 20190106 |
1920 | 20190104 | 4호선 | 426 | 서울역 | 15603 | 25794 | 20190107 |
2120 | 20190104 | 경부선 | 1001 | 서울역 | 7021 | 1192 | 20190107 |
2177 | 20190104 | 경의선 | 1251 | 서울역 | 4599 | 5743 | 20190107 |
2226 | 20190104 | 공항철도 1호선 | 4201 | 서울역 | 14869 | 11591 | 20190107 |
2359 | 20190104 | 1호선 | 150 | 서울역 | 67010 | 60532 | 20190107 |
2386 | 20190105 | 1호선 | 150 | 서울역 | 51353 | 48561 | 20190108 |
2498 | 20190105 | 4호선 | 426 | 서울역 | 9182 | 19741 | 20190108 |
2715 | 20190105 | 경부선 | 1001 | 서울역 | 6491 | 969 | 20190108 |
2783 | 20190105 | 경의선 | 1251 | 서울역 | 1571 | 1734 | 20190108 |
2859 | 20190105 | 공항철도 1호선 | 4201 | 서울역 | 13714 | 11375 | 20190108 |
2963 | 20190106 | 1호선 | 150 | 서울역 | 37856 | 33307 | 20190109 |
3098 | 20190106 | 공항철도 1호선 | 4201 | 서울역 | 12848 | 9630 | 20190109 |
3163 | 20190106 | 경의선 | 1251 | 서울역 | 1271 | 1083 | 20190109 |
3231 | 20190106 | 경부선 | 1001 | 서울역 | 5672 | 812 | 20190109 |
3443 | 20190106 | 4호선 | 426 | 서울역 | 6401 | 14527 | 20190109 |
... | ... | ... | ... | ... | ... | ... | ... |
15259 | 20190126 | 4호선 | 426 | 서울역 | 9456 | 22511 | 20190129 |
15370 | 20190126 | 1호선 | 150 | 서울역 | 54199 | 52733 | 20190129 |
15484 | 20190127 | 1호선 | 150 | 서울역 | 38998 | 36633 | 20190130 |
15600 | 20190127 | 공항철도 1호선 | 4201 | 서울역 | 12919 | 10596 | 20190130 |
15641 | 20190127 | 경의선 | 1291 | 서울역 | 1 | 0 | 20190130 |
15666 | 20190127 | 경의선 | 1251 | 서울역 | 1467 | 1233 | 20190130 |
15734 | 20190127 | 경부선 | 1001 | 서울역 | 6279 | 987 | 20190130 |
15947 | 20190127 | 4호선 | 426 | 서울역 | 6900 | 15941 | 20190130 |
15984 | 20190128 | 1호선 | 150 | 서울역 | 58650 | 56060 | 20190131 |
16153 | 20190128 | 공항철도 1호선 | 4201 | 서울역 | 12789 | 10854 | 20190131 |
16194 | 20190128 | 경의선 | 1291 | 서울역 | 2 | 0 | 20190131 |
16219 | 20190128 | 경의선 | 1251 | 서울역 | 4220 | 5639 | 20190131 |
16287 | 20190128 | 경부선 | 1001 | 서울역 | 5588 | 1071 | 20190131 |
16498 | 20190128 | 4호선 | 426 | 서울역 | 15628 | 23702 | 20190131 |
16640 | 20190129 | 경부선 | 1001 | 서울역 | 5494 | 1071 | 20190201 |
16791 | 20190129 | 경의선 | 1251 | 서울역 | 4275 | 5369 | 20190201 |
16810 | 20190129 | 공항철도 1호선 | 4201 | 서울역 | 11860 | 10242 | 20190201 |
16980 | 20190129 | 1호선 | 150 | 서울역 | 58360 | 55520 | 20190201 |
17093 | 20190129 | 4호선 | 426 | 서울역 | 15588 | 23755 | 20190201 |
17151 | 20190130 | 1호선 | 150 | 서울역 | 58931 | 55571 | 20190202 |
17179 | 20190130 | 경의선 | 1251 | 서울역 | 4220 | 5535 | 20190202 |
17204 | 20190130 | 경의선 | 1291 | 서울역 | 1 | 0 | 20190202 |
17244 | 20190130 | 공항철도 1호선 | 4201 | 서울역 | 12023 | 10027 | 20190202 |
17418 | 20190130 | 경부선 | 1001 | 서울역 | 5595 | 1070 | 20190202 |
17633 | 20190130 | 4호선 | 426 | 서울역 | 15580 | 23871 | 20190202 |
17748 | 20190131 | 1호선 | 150 | 서울역 | 57771 | 57117 | 20190203 |
17884 | 20190131 | 공항철도 1호선 | 4201 | 서울역 | 12105 | 10810 | 20190203 |
17928 | 20190131 | 경의선 | 1251 | 서울역 | 3972 | 5453 | 20190203 |
17988 | 20190131 | 경부선 | 1001 | 서울역 | 5104 | 1193 | 20190203 |
18203 | 20190131 | 4호선 | 426 | 서울역 | 15283 | 24285 | 20190203 |
164 rows × 7 columns
data.isin(['대성리']).head()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
0 | False | False | False | False | False | False | False |
1 | False | False | False | False | False | False | False |
2 | False | False | False | False | False | False | False |
3 | False | False | False | True | False | False | False |
4 | False | False | False | False | False | False | False |
인덱스 설정¶
- set_index()
- reset_index()
- reindex()
- rename() # 인덱스와 칼럼의 명칭 바꾸기
d = pd.DataFrame(np.arange(12).reshape(4,3))
d
0 | 1 | 2 | |
---|---|---|---|
0 | 0 | 1 | 2 |
1 | 3 | 4 | 5 |
2 | 6 | 7 | 8 |
3 | 9 | 10 | 11 |
d.drop([1,2]).reset_index(drop=True)
0 | 1 | 2 | |
---|---|---|---|
0 | 0 | 1 | 2 |
1 | 9 | 10 | 11 |
data.head()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 |
4 | 20190101 | 경춘선 | 1319 | 마석 | 1772 | 1963 | 20190104 |
p = pd.pivot_table(data, values='승차총승객수', index='사용일자', columns='노선명', aggfunc=np.mean).reset_index()
wday={0:'월', 1:'화', 2:'수', 3:'목', 4:'금', 5:'토', 6:'일'}
p.insert(1, '요일', pd.to_datetime(p.사용일자, format='%Y%m%d').dt.dayofweek.map(wday))
p
노선명 | 사용일자 | 요일 | 1호선 | 2호선 | 3호선 | 4호선 | 5호선 | 6호선 | 7호선 | 8호선 | ... | 경춘선 | 공항철도 1호선 | 과천선 | 분당선 | 수인선 | 안산선 | 우이신설선 | 일산선 | 장항선 | 중앙선 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 20190101 | 화 | 15295.5 | 13624.08 | 7108.411765 | 10613.538462 | 4885.941176 | 4410.684211 | 5844.882353 | 5008.235294 | ... | 1068.368421 | 5552.500000 | 4899.875 | 4401.411765 | 1785.076923 | 5196.538462 | 1726.000000 | 5170.400000 | 1729.666667 | 2197.190476 |
1 | 20190102 | 수 | 28386.1 | 32342.00 | 17164.264706 | 22394.730769 | 12758.666667 | 9424.236842 | 14909.098039 | 11785.882353 | ... | 1874.631579 | 8469.214286 | 14023.625 | 11034.285714 | 3427.384615 | 9720.461538 | 3271.153846 | 11702.200000 | 2089.666667 | 4435.523810 |
2 | 20190103 | 목 | 29592.5 | 33702.84 | 17881.382353 | 23318.000000 | 13137.647059 | 10095.918919 | 15274.019608 | 12094.882353 | ... | 1916.000000 | 8479.285714 | 14200.000 | 11437.800000 | 3548.846154 | 9898.692308 | 3386.000000 | 12048.900000 | 2138.500000 | 4643.571429 |
3 | 20190104 | 금 | 31664.8 | 35276.84 | 19443.151515 | 24231.153846 | 13534.058824 | 10527.513514 | 15751.156863 | 12827.000000 | ... | 2013.105263 | 8948.142857 | 15780.625 | 12376.285714 | 3721.538462 | 10452.307692 | 3493.153846 | 12459.000000 | 2648.833333 | 4794.619048 |
4 | 20190105 | 토 | 25247.3 | 25251.02 | 13766.147059 | 18629.576923 | 8932.529412 | 7642.648649 | 10723.843137 | 8723.294118 | ... | 1594.421053 | 6928.214286 | 12030.250 | 8690.882353 | 2774.307692 | 8354.230769 | 2727.692308 | 9272.900000 | 2255.666667 | 4053.476190 |
5 | 20190106 | 일 | 17574.4 | 17694.24 | 9817.727273 | 13388.692308 | 6294.450980 | 5461.552632 | 7644.509804 | 6364.588235 | ... | 1305.947368 | 5683.285714 | 9755.000 | 6162.735294 | 2249.692308 | 6424.538462 | 2292.461538 | 6958.900000 | 1844.333333 | 2895.571429 |
6 | 20190107 | 월 | 29460.1 | 33224.28 | 17652.705882 | 22749.500000 | 13041.627451 | 9655.315789 | 15350.176471 | 12094.764706 | ... | 1968.631579 | 8117.500000 | 13849.375 | 11368.571429 | 3566.230769 | 9997.076923 | 3373.461538 | 12072.900000 | 2166.833333 | 4629.238095 |
7 | 20190108 | 화 | 29955.2 | 33742.72 | 17991.588235 | 23310.307692 | 13252.882353 | 10106.756757 | 15371.843137 | 12274.882353 | ... | 1971.631579 | 8095.928571 | 14154.875 | 11506.885714 | 3530.923077 | 9925.076923 | 3449.461538 | 12056.200000 | 2129.000000 | 4692.238095 |
8 | 20190109 | 수 | 28726.1 | 33413.94 | 18313.939394 | 22785.269231 | 13081.156863 | 9701.710526 | 15279.411765 | 12249.000000 | ... | 1824.526316 | 7999.214286 | 14554.750 | 12021.735294 | 3490.538462 | 9820.384615 | 3312.076923 | 10809.636364 | 2274.000000 | 4514.047619 |
9 | 20190110 | 목 | 30103.2 | 34152.46 | 18661.393939 | 23337.115385 | 13292.039216 | 10153.648649 | 15451.725490 | 12301.882353 | ... | 1943.894737 | 8263.071429 | 14575.375 | 11966.676471 | 3558.230769 | 10124.000000 | 3408.384615 | 12091.800000 | 2161.000000 | 4753.523810 |
10 | 20190111 | 금 | 32108.4 | 35644.20 | 19143.088235 | 24303.730769 | 13584.215686 | 10570.783784 | 15870.549020 | 12731.411765 | ... | 2033.736842 | 8952.857143 | 15957.125 | 12624.617647 | 3793.076923 | 10702.076923 | 3527.923077 | 12612.000000 | 2520.833333 | 4861.476190 |
11 | 20190112 | 토 | 26814.4 | 26124.62 | 14537.470588 | 19352.884615 | 9114.764706 | 7729.815789 | 11068.254902 | 8818.882353 | ... | 1784.263158 | 7281.285714 | 12204.000 | 8921.882353 | 2963.076923 | 8751.923077 | 2851.153846 | 9645.900000 | 2418.666667 | 3985.142857 |
12 | 20190113 | 일 | 17741.0 | 18251.76 | 9758.941176 | 13693.846154 | 6256.019608 | 5505.631579 | 7859.431373 | 6386.176471 | ... | 1423.210526 | 5767.071429 | 9842.875 | 6061.314286 | 2293.615385 | 6830.076923 | 2160.384615 | 7002.600000 | 1993.833333 | 3045.714286 |
13 | 20190114 | 월 | 28666.5 | 32552.70 | 17408.911765 | 22222.769231 | 12824.117647 | 9455.421053 | 15112.313725 | 12082.352941 | ... | 1905.894737 | 8261.357143 | 13691.000 | 11300.971429 | 3376.615385 | 9787.615385 | 3269.384615 | 11718.800000 | 2340.833333 | 4469.761905 |
14 | 20190115 | 화 | 29400.6 | 33491.86 | 17749.470588 | 22892.115385 | 13116.607843 | 9998.216216 | 15267.803922 | 12101.705882 | ... | 1882.631579 | 8243.142857 | 13913.000 | 11287.114286 | 3393.000000 | 9800.615385 | 3332.846154 | 11859.200000 | 2068.000000 | 4598.238095 |
15 | 20190116 | 수 | 29605.6 | 33897.38 | 17923.411765 | 23047.461538 | 13198.431373 | 10118.000000 | 15289.607843 | 12198.294118 | ... | 1858.368421 | 8285.857143 | 14684.500 | 11538.628571 | 3472.076923 | 9828.153846 | 3374.384615 | 12161.400000 | 2078.500000 | 4605.809524 |
16 | 20190117 | 목 | 30716.8 | 34320.44 | 18512.323529 | 23484.269231 | 13392.078431 | 10021.552632 | 15477.058824 | 12339.352941 | ... | 1992.473684 | 8562.071429 | 14594.125 | 11669.228571 | 3582.076923 | 10094.538462 | 3460.769231 | 12255.700000 | 2160.166667 | 4662.285714 |
17 | 20190118 | 금 | 32380.4 | 35586.86 | 19395.941176 | 24344.269231 | 13609.235294 | 10662.459459 | 15855.921569 | 12686.411765 | ... | 2096.526316 | 9093.642857 | 15962.625 | 12579.911765 | 3686.461538 | 10720.384615 | 3522.076923 | 12505.800000 | 2451.500000 | 4876.476190 |
18 | 20190119 | 토 | 26445.3 | 25834.22 | 14579.382353 | 18944.307692 | 9155.882353 | 7646.894737 | 10985.784314 | 9124.823529 | ... | 1680.210526 | 7206.000000 | 12078.875 | 8980.257143 | 2952.076923 | 8851.692308 | 2724.153846 | 9517.500000 | 2736.833333 | 4002.952381 |
19 | 20190120 | 일 | 18177.7 | 18204.88 | 10024.588235 | 13815.115385 | 6369.862745 | 5679.105263 | 7980.666667 | 6499.882353 | ... | 1398.052632 | 5823.000000 | 10103.500 | 6321.235294 | 2217.076923 | 6883.923077 | 2221.923077 | 6991.800000 | 1917.666667 | 3129.285714 |
20 | 20190121 | 월 | 29176.8 | 32911.78 | 17544.529412 | 22469.769231 | 12898.549020 | 9456.947368 | 15122.705882 | 11942.882353 | ... | 1936.157895 | 8325.500000 | 13652.500 | 11563.823529 | 3436.846154 | 9934.076923 | 3380.230769 | 10803.454545 | 2161.833333 | 4518.809524 |
21 | 20190122 | 화 | 30385.1 | 33846.56 | 17992.058824 | 23197.115385 | 13262.921569 | 10083.351351 | 15413.686275 | 12179.058824 | ... | 2002.947368 | 8520.142857 | 14211.000 | 11482.314286 | 3565.692308 | 10010.846154 | 3460.769231 | 12098.100000 | 2089.166667 | 4624.619048 |
22 | 20190123 | 수 | 30479.8 | 34518.60 | 18108.676471 | 23512.730769 | 13388.117647 | 10191.567568 | 15538.431373 | 12337.235294 | ... | 1934.210526 | 8633.285714 | 15047.125 | 11996.970588 | 3619.384615 | 10161.153846 | 3470.230769 | 12227.900000 | 2115.666667 | 4767.666667 |
23 | 20190124 | 목 | 30946.7 | 34648.28 | 18948.727273 | 23583.461538 | 13410.764706 | 9925.052632 | 15492.117647 | 12598.176471 | ... | 1957.157895 | 8805.214286 | 14498.875 | 12038.685714 | 3548.769231 | 9983.000000 | 3474.615385 | 12130.600000 | 2467.000000 | 4708.428571 |
24 | 20190125 | 금 | 32804.4 | 36225.90 | 19456.088235 | 24601.961538 | 13724.921569 | 10660.756757 | 15974.882353 | 12842.058824 | ... | 2015.578947 | 9260.428571 | 15936.750 | 12719.617647 | 3643.538462 | 10483.461538 | 3586.307692 | 12535.600000 | 2335.166667 | 4938.095238 |
25 | 20190126 | 토 | 26851.7 | 26342.38 | 14711.441176 | 19448.000000 | 9294.705882 | 7963.447368 | 11107.058824 | 9019.941176 | ... | 1686.947368 | 7406.214286 | 12389.375 | 9052.911765 | 2881.769231 | 8514.769231 | 2781.153846 | 9966.900000 | 2301.166667 | 4048.952381 |
26 | 20190127 | 일 | 19390.4 | 18731.14 | 9972.705882 | 14107.576923 | 6706.196078 | 5811.027027 | 7918.215686 | 6544.823529 | ... | 1431.789474 | 5980.357143 | 10286.000 | 6180.085714 | 2286.769231 | 6753.846154 | 2189.153846 | 7299.300000 | 1892.166667 | 3033.476190 |
27 | 20190128 | 월 | 29776.7 | 33275.40 | 17783.794118 | 22917.730769 | 13090.568627 | 9629.657895 | 15320.588235 | 12150.705882 | ... | 1998.789474 | 8550.285714 | 13794.375 | 11711.058824 | 3412.076923 | 9842.307692 | 3450.153846 | 12039.900000 | 2130.666667 | 4715.095238 |
28 | 20190129 | 화 | 30298.7 | 33719.62 | 18035.676471 | 23317.230769 | 13236.196078 | 9839.657895 | 15432.588235 | 12560.000000 | ... | 1951.947368 | 8459.428571 | 14238.750 | 11861.171429 | 3517.230769 | 9880.307692 | 3494.923077 | 12036.700000 | 2457.666667 | 4660.285714 |
29 | 20190130 | 수 | 30727.1 | 33922.58 | 18246.264706 | 23645.807692 | 13465.254902 | 10041.131579 | 15561.529412 | 12385.705882 | ... | 1979.000000 | 8541.285714 | 15091.500 | 11685.514286 | 3574.769231 | 10075.384615 | 3533.153846 | 12358.600000 | 2171.666667 | 4835.666667 |
30 | 20190131 | 목 | 30242.6 | 33520.92 | 17966.588235 | 23120.192308 | 13240.607843 | 10148.162162 | 15374.941176 | 12296.588235 | ... | 1889.421053 | 8493.500000 | 14339.625 | 11456.714286 | 3381.461538 | 9796.153846 | 3497.769231 | 11909.300000 | 2073.833333 | 4612.714286 |
31 rows × 27 columns
dt = pd.to_datetime(data.사용일자, format='%Y%m%d')
dt.head()
0 2019-01-01 1 2019-01-01 2 2019-01-01 3 2019-01-01 4 2019-01-01 Name: 사용일자, dtype: datetime64[ns]
dt.dt.dayofweek # 0 이 월요일
0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 1 16 1 17 1 18 1 19 1 20 1 21 1 22 1 23 1 24 1 25 1 26 1 27 1 28 1 29 1 .. 18304 3 18305 3 18306 3 18307 3 18308 3 18309 3 18310 3 18311 3 18312 3 18313 3 18314 3 18315 3 18316 3 18317 3 18318 3 18319 3 18320 3 18321 3 18322 3 18323 3 18324 3 18325 3 18326 3 18327 3 18328 3 18329 3 18330 3 18331 3 18332 3 18333 3 Name: 사용일자, Length: 18334, dtype: int64
노선명 코드화¶
line_name = np.sort(data.노선명.unique())
line_code = pd.DataFrame(list(enumerate(line_name)), columns=['노선코드','노선명'])
line_code
노선코드 | 노선명 | |
---|---|---|
0 | 0 | 1호선 |
1 | 1 | 2호선 |
2 | 2 | 3호선 |
3 | 3 | 4호선 |
4 | 4 | 5호선 |
5 | 5 | 6호선 |
6 | 6 | 7호선 |
7 | 7 | 8호선 |
8 | 8 | 9호선 |
9 | 9 | 9호선2~3단계 |
10 | 10 | 경강선 |
11 | 11 | 경부선 |
12 | 12 | 경원선 |
13 | 13 | 경의선 |
14 | 14 | 경인선 |
15 | 15 | 경춘선 |
16 | 16 | 공항철도 1호선 |
17 | 17 | 과천선 |
18 | 18 | 분당선 |
19 | 19 | 수인선 |
20 | 20 | 안산선 |
21 | 21 | 우이신설선 |
22 | 22 | 일산선 |
23 | 23 | 장항선 |
24 | 24 | 중앙선 |
s = data[['노선명','역ID']].drop_duplicates().노선명.value_counts()
line_code['역수'] = line_code.노선명.map(s)
line_code
노선코드 | 노선명 | 역수 | |
---|---|---|---|
0 | 0 | 1호선 | 10 |
1 | 1 | 2호선 | 50 |
2 | 2 | 3호선 | 34 |
3 | 3 | 4호선 | 26 |
4 | 4 | 5호선 | 51 |
5 | 5 | 6호선 | 38 |
6 | 6 | 7호선 | 51 |
7 | 7 | 8호선 | 17 |
8 | 8 | 9호선 | 25 |
9 | 9 | 9호선2~3단계 | 13 |
10 | 10 | 경강선 | 11 |
11 | 11 | 경부선 | 39 |
12 | 12 | 경원선 | 30 |
13 | 13 | 경의선 | 30 |
14 | 14 | 경인선 | 20 |
15 | 15 | 경춘선 | 19 |
16 | 16 | 공항철도 1호선 | 14 |
17 | 17 | 과천선 | 8 |
18 | 18 | 분당선 | 35 |
19 | 19 | 수인선 | 13 |
20 | 20 | 안산선 | 13 |
21 | 21 | 우이신설선 | 13 |
22 | 22 | 일산선 | 11 |
23 | 23 | 장항선 | 6 |
24 | 24 | 중앙선 | 21 |
pd.merge(data.노선명.to_frame(),line_code)
노선명 | 노선코드 | |
---|---|---|
0 | 경춘선 | 15 |
1 | 경춘선 | 15 |
2 | 경춘선 | 15 |
3 | 경춘선 | 15 |
4 | 경춘선 | 15 |
5 | 경춘선 | 15 |
6 | 경춘선 | 15 |
7 | 경춘선 | 15 |
8 | 경춘선 | 15 |
9 | 경춘선 | 15 |
10 | 경춘선 | 15 |
11 | 경춘선 | 15 |
12 | 경춘선 | 15 |
13 | 경춘선 | 15 |
14 | 경춘선 | 15 |
15 | 경춘선 | 15 |
16 | 경춘선 | 15 |
17 | 경춘선 | 15 |
18 | 경춘선 | 15 |
19 | 경춘선 | 15 |
20 | 경춘선 | 15 |
21 | 경춘선 | 15 |
22 | 경춘선 | 15 |
23 | 경춘선 | 15 |
24 | 경춘선 | 15 |
25 | 경춘선 | 15 |
26 | 경춘선 | 15 |
27 | 경춘선 | 15 |
28 | 경춘선 | 15 |
29 | 경춘선 | 15 |
... | ... | ... |
18304 | 과천선 | 17 |
18305 | 과천선 | 17 |
18306 | 과천선 | 17 |
18307 | 과천선 | 17 |
18308 | 과천선 | 17 |
18309 | 과천선 | 17 |
18310 | 과천선 | 17 |
18311 | 과천선 | 17 |
18312 | 과천선 | 17 |
18313 | 과천선 | 17 |
18314 | 과천선 | 17 |
18315 | 과천선 | 17 |
18316 | 과천선 | 17 |
18317 | 과천선 | 17 |
18318 | 과천선 | 17 |
18319 | 과천선 | 17 |
18320 | 과천선 | 17 |
18321 | 과천선 | 17 |
18322 | 과천선 | 17 |
18323 | 과천선 | 17 |
18324 | 과천선 | 17 |
18325 | 과천선 | 17 |
18326 | 과천선 | 17 |
18327 | 과천선 | 17 |
18328 | 과천선 | 17 |
18329 | 과천선 | 17 |
18330 | 과천선 | 17 |
18331 | 과천선 | 17 |
18332 | 과천선 | 17 |
18333 | 과천선 | 17 |
18334 rows × 2 columns
line_code2 = pd.Series({s:i for i,s in enumerate(data.노선명.unique())})
line_code2
경춘선 0 경인선 1 경의선 2 경원선 3 경부선 4 2호선 5 경강선 6 수인선 7 분당선 8 9호선2~3단계 9 9호선 10 8호선 11 7호선 12 6호선 13 공항철도 1호선 14 5호선 15 4호선 16 3호선 17 1호선 18 중앙선 19 안산선 20 우이신설선 21 일산선 22 장항선 23 과천선 24 dtype: int64
data.노선명.map(line_code2)
0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 1 13 1 14 1 15 1 16 2 17 2 18 2 19 2 20 2 21 2 22 2 23 2 24 2 25 2 26 2 27 2 28 2 29 2 .. 18304 5 18305 5 18306 5 18307 5 18308 5 18309 5 18310 5 18311 5 18312 5 18313 5 18314 5 18315 5 18316 5 18317 5 18318 5 18319 5 18320 5 18321 5 18322 5 18323 5 18324 5 18325 18 18326 18 18327 18 18328 18 18329 18 18330 18 18331 18 18332 18 18333 18 Name: 노선명, Length: 18334, dtype: int64
역ID 코드 테이블¶
data[['역ID','역명','노선명']].values.tolist()
[[1323, '가평', '경춘선'], [1322, '상천', '경춘선'], [1321, '청평', '경춘선'], [1320, '대성리', '경춘선'], [1319, '마석', '경춘선'], [1318, '천마산', '경춘선'], [1317, '평내호평', '경춘선'], [1316, '금곡', '경춘선'], [1315, '사릉', '경춘선'], [1314, '퇴계원', '경춘선'], [1313, '별내', '경춘선'], [1312, '갈매', '경춘선'], [1804, '부천', '경인선'], [1803, '역곡', '경인선'], [1802, '오류동', '경인선'], [1801, '개봉', '경인선'], [1296, '계양', '경의선'], [1284, '문산', '경의선'], [1283, '파주', '경의선'], [1282, '월롱', '경의선'], [1280, '금촌', '경의선'], [1279, '금릉', '경의선'], [1278, '운정', '경의선'], [1277, '야당', '경의선'], [1276, '탄현', '경의선'], [1275, '일산', '경의선'], [1274, '풍산', '경의선'], [1273, '백마', '경의선'], [1272, '곡산', '경의선'], [1271, '능곡', '경의선'], [1270, '행신', '경의선'], [1269, '강매', '경의선'], [1268, '화전', '경의선'], [1267, '수색', '경의선'], [1266, '디지털미디어시티', '경의선'], [1265, '가좌', '경의선'], [1264, '홍대입구', '경의선'], [1263, '서강대', '경의선'], [1262, '공덕', '경의선'], [1261, '효창공원앞', '경의선'], [1252, '신촌', '경의선'], [1251, '서울역', '경의선'], [1916, '소요산', '경원선'], [1915, '동두천', '경원선'], [1914, '보산', '경원선'], [1913, '동두천중앙', '경원선'], [1912, '지행', '경원선'], [1911, '덕정', '경원선'], [1910, '덕계', '경원선'], [1909, '양주', '경원선'], [1908, '녹양', '경원선'], [1907, '가능', '경원선'], [1906, '의정부', '경원선'], [1905, '회룡', '경원선'], [1904, '망월사', '경원선'], [1903, '도봉산', '경원선'], [1902, '도봉', '경원선'], [1901, '방학', '경원선'], [1021, '녹천', '경원선'], [1020, '월계', '경원선'], [1019, '광운대', '경원선'], [1018, '석계', '경원선'], [1017, '신이문', '경원선'], [1016, '외대앞', '경원선'], [1014, '청량리(서울시립대입구)', '경원선'], [1013, '왕십리(성동구청)', '경원선'], [1012, '응봉', '경원선'], [1011, '옥수', '경원선'], [1010, '한남', '경원선'], [1009, '서빙고', '경원선'], [1008, '이촌(국립중앙박물관)', '경원선'], [1750, '광명', '경부선'], [1749, '서동탄', '경부선'], [1729, '당정', '경부선'], [1728, '천안', '경부선'], [1727, '두정', '경부선'], [1726, '직산', '경부선'], [1725, '성환', '경부선'], [1724, '평택', '경부선'], [1723, '지제', '경부선'], [1722, '서정리', '경부선'], [1721, '송탄', '경부선'], [1720, '진위', '경부선'], [1719, '오산', '경부선'], [1718, '오산대', '경부선'], [1717, '세마', '경부선'], [1716, '병점', '경부선'], [1715, '세류', '경부선'], [1714, '독산', '경부선'], [1713, '수원', '경부선'], [1712, '화서', '경부선'], [1711, '성균관대', '경부선'], [1710, '의왕', '경부선'], [1709, '군포', '경부선'], [1708, '금정', '경부선'], [1707, '명학', '경부선'], [1706, '안양', '경부선'], [1705, '관악', '경부선'], [1704, '석수', '경부선'], [1703, '금천구청', '경부선'], [1702, '가산디지털단지', '경부선'], [224, '서초', '2호선'], [1701, '구로', '경부선'], [1032, '신길', '경부선'], [1007, '신도림', '경부선'], [1006, '영등포', '경부선'], [1005, '대방', '경부선'], [1004, '노량진', '경부선'], [1003, '용산', '경부선'], [1002, '남영', '경부선'], [1001, '서울역', '경부선'], [1511, '여주', '경강선'], [1510, '세종대왕릉', '경강선'], [1509, '부발', '경강선'], [1508, '이천', '경강선'], [1507, '신둔도예촌', '경강선'], [1879, '월곶', '수인선'], [1878, '달월', '수인선'], [1872, '매교', '분당선'], [1871, '수원시청', '분당선'], [1870, '매탄권선', '분당선'], [1869, '망포', '분당선'], [1506, '곤지암', '경강선'], [1505, '초월', '경강선'], [1504, '경기광주', '경강선'], [1503, '삼동', '경강선'], [1502, '이매', '경강선'], [1501, '판교', '경강선'], [4138, '중앙보훈병원', '9호선2~3단계'], [4137, '둔촌오륜', '9호선2~3단계'], [4136, '올림픽공원(한국체대)', '9호선2~3단계'], [4135, '한성백제', '9호선2~3단계'], [4134, '송파나루', '9호선2~3단계'], [4133, '석촌', '9호선2~3단계'], [4132, '석촌고분', '9호선2~3단계'], [4131, '삼전', '9호선2~3단계'], [4130, '종합운동장', '9호선2~3단계'], [4129, '봉은사', '9호선2~3단계'], [4128, '삼성중앙', '9호선2~3단계'], [4127, '선정릉', '9호선2~3단계'], [4126, '언주', '9호선2~3단계'], [4125, '신논현', '9호선'], [4124, '사평', '9호선'], [4123, '고속터미널', '9호선'], [4122, '신반포', '9호선'], [4121, '구반포', '9호선'], [4120, '동작(현충원)', '9호선'], [4119, '흑석(중앙대입구)', '9호선'], [4118, '노들', '9호선'], [4117, '노량진', '9호선'], [4116, '샛강', '9호선'], [4115, '여의도', '9호선'], [4114, '국회의사당', '9호선'], [4113, '당산', '9호선'], [4112, '선유도', '9호선'], [4111, '신목동', '9호선'], [4110, '염창', '9호선'], [4109, '등촌', '9호선'], [4108, '증미', '9호선'], [4106, '양천향교', '9호선'], [4105, '마곡나루', '9호선'], [4104, '신방화', '9호선'], [4103, '공항시장', '9호선'], [4102, '김포공항', '9호선'], [4101, '개화', '9호선'], [2827, '모란', '8호선'], [2826, '수진', '8호선'], [2825, '신흥', '8호선'], [2824, '단대오거리', '8호선'], [2823, '남한산성입구(성남법원.검찰청)', '8호선'], [2822, '산성', '8호선'], [2821, '복정', '8호선'], [2820, '장지', '8호선'], [2819, '문정', '8호선'], [2818, '가락시장', '8호선'], [2817, '송파', '8호선'], [2816, '석촌', '8호선'], [2815, '잠실(송파구청)', '8호선'], [2814, '몽촌토성(평화의문)', '8호선'], [2813, '강동구청', '8호선'], [2812, '천호(풍납토성)', '8호선'], [2811, '암사', '8호선'], [2761, '부평구청', '7호선'], [2760, '굴포천', '7호선'], [2759, '삼산체육관', '7호선'], [2758, '상동', '7호선'], [2757, '부천시청', '7호선'], [2756, '신중동', '7호선'], [2755, '춘의', '7호선'], [2754, '부천종합운동장', '7호선'], [2753, '까치울', '7호선'], [2752, '온수(성공회대입구)', '7호선'], [2750, '광명사거리', '7호선'], [2749, '철산', '7호선'], [2748, '가산디지털단지', '7호선'], [2747, '남구로', '7호선'], [2746, '대림(구로구청)', '7호선'], [2745, '신풍', '7호선'], [2744, '보라매', '7호선'], [2743, '신대방삼거리', '7호선'], [2742, '장승배기', '7호선'], [2741, '상도', '7호선'], [2740, '숭실대입구(살피재)', '7호선'], [2739, '남성', '7호선'], [2738, '이수', '7호선'], [2737, '내방', '7호선'], [2736, '고속터미널', '7호선'], [2735, '반포', '7호선'], [2734, '논현', '7호선'], [2733, '학동', '7호선'], [2732, '강남구청', '7호선'], [2731, '청담', '7호선'], [2730, '뚝섬유원지', '7호선'], [2729, '건대입구', '7호선'], [2728, '어린이대공원(세종대)', '7호선'], [2727, '군자(능동)', '7호선'], [2726, '중곡', '7호선'], [2725, '용마산', '7호선'], [2724, '사가정', '7호선'], [2723, '면목', '7호선'], [2722, '상봉(시외버스터미널)', '7호선'], [2721, '중화', '7호선'], [2720, '먹골', '7호선'], [2719, '태릉입구', '7호선'], [2718, '공릉(서울과학기술대)', '7호선'], [2717, '하계', '7호선'], [2716, '중계', '7호선'], [2715, '노원', '7호선'], [2714, '마들', '7호선'], [2713, '수락산', '7호선'], [2712, '도봉산', '7호선'], [2711, '장암', '7호선'], [2648, '봉화산(서울의료원)', '6호선'], [2647, '화랑대(서울여대입구)', '6호선'], [2646, '태릉입구', '6호선'], [2645, '석계', '6호선'], [2644, '돌곶이', '6호선'], [2643, '상월곡(한국과학기술연구원)', '6호선'], [2642, '월곡(동덕여대)', '6호선'], [2641, '고려대(종암)', '6호선'], [2640, '안암(고대병원앞)', '6호선'], [2639, '보문', '6호선'], [2638, '창신', '6호선'], [2637, '동묘앞', '6호선'], [2636, '신당', '6호선'], [2635, '청구', '6호선'], [2634, '약수', '6호선'], [2633, '버티고개', '6호선'], [2632, '한강진', '6호선'], [2631, '이태원', '6호선'], [2630, '녹사평(용산구청)', '6호선'], [2629, '삼각지', '6호선'], [2628, '효창공원앞', '6호선'], [2627, '공덕', '6호선'], [2626, '대흥(서강대앞)', '6호선'], [4209, '검암', '공항철도 1호선'], [2625, '광흥창(서강)', '6호선'], [2624, '상수', '6호선'], [2623, '합정', '6호선'], [2622, '망원', '6호선'], [2621, '마포구청', '6호선'], [2620, '월드컵경기장(성산)', '6호선'], [2619, '디지털미디어시티', '6호선'], [2618, '증산(명지대앞)', '6호선'], [2617, '새절(신사)', '6호선'], [2616, '구산', '6호선'], [2615, '연신내', '6호선'], [2614, '독바위', '6호선'], [2613, '불광', '6호선'], [2612, '역촌', '6호선'], [2611, '응암', '6호선'], [2561, '마천', '5호선'], [2560, '거여', '5호선'], [2559, '개롱', '5호선'], [2558, '오금', '5호선'], [2557, '방이', '5호선'], [2556, '올림픽공원(한국체대)', '5호선'], [2555, '둔촌동', '5호선'], [2554, '상일동', '5호선'], [2553, '고덕', '5호선'], [2552, '명일', '5호선'], [2551, '굽은다리(강동구민회관앞)', '5호선'], [2550, '길동', '5호선'], [2549, '강동', '5호선'], [2548, '천호(풍납토성)', '5호선'], [2547, '광나루(장신대)', '5호선'], [2546, '아차산(어린이대공원후문)', '5호선'], [2545, '군자(능동)', '5호선'], [2544, '장한평', '5호선'], [2543, '답십리', '5호선'], [2542, '마장', '5호선'], [2541, '왕십리(성동구청)', '5호선'], [2540, '행당', '5호선'], [2539, '신금호', '5호선'], [2538, '청구', '5호선'], [2537, '동대문역사문화공원', '5호선'], [2536, '을지로4가', '5호선'], [2535, '종로3가', '5호선'], [2534, '광화문(세종문화회관)', '5호선'], [2533, '서대문', '5호선'], [2532, '충정로(경기대입구)', '5호선'], [2531, '애오개', '5호선'], [2530, '공덕', '5호선'], [2529, '마포', '5호선'], [2528, '여의나루', '5호선'], [2527, '여의도', '5호선'], [2526, '신길', '5호선'], [2525, '영등포시장', '5호선'], [2524, '영등포구청', '5호선'], [2523, '양평', '5호선'], [2522, '오목교(목동운동장앞)', '5호선'], [2521, '목동', '5호선'], [2520, '신정(은행정)', '5호선'], [2519, '까치산', '5호선'], [2518, '화곡', '5호선'], [2517, '우장산', '5호선'], [2516, '발산', '5호선'], [2515, '마곡', '5호선'], [2514, '송정', '5호선'], [2513, '김포공항', '5호선'], [2512, '개화산', '5호선'], [2511, '방화', '5호선'], [434, '남태령', '4호선'], [433, '사당', '4호선'], [432, '총신대입구(이수)', '4호선'], [431, '동작(현충원)', '4호선'], [430, '이촌(국립중앙박물관)', '4호선'], [429, '신용산', '4호선'], [428, '삼각지', '4호선'], [427, '숙대입구(갈월)', '4호선'], [426, '서울역', '4호선'], [425, '회현(남대문시장)', '4호선'], [424, '명동', '4호선'], [423, '충무로', '4호선'], [422, '동대문역사문화공원', '4호선'], [421, '동대문', '4호선'], [420, '혜화', '4호선'], [419, '한성대입구(삼선교)', '4호선'], [418, '성신여대입구(돈암)', '4호선'], [417, '길음', '4호선'], [416, '미아사거리', '4호선'], [415, '미아(서울사이버대학)', '4호선'], [414, '수유(강북구청)', '4호선'], [413, '쌍문', '4호선'], [412, '창동', '4호선'], [411, '노원', '4호선'], [410, '상계', '4호선'], [409, '당고개', '4호선'], [342, '오금', '3호선'], [341, '경찰병원', '3호선'], [340, '가락시장', '3호선'], [339, '수서', '3호선'], [4107, '가양', '9호선'], [338, '일원', '3호선'], [337, '대청', '3호선'], [336, '학여울', '3호선'], [335, '대치', '3호선'], [334, '도곡', '3호선'], [333, '매봉', '3호선'], [332, '양재(서초구청)', '3호선'], [331, '남부터미널(예술의전당)', '3호선'], [330, '교대(법원.검찰청)', '3호선'], [329, '고속터미널', '3호선'], [328, '잠원', '3호선'], [327, '신사', '3호선'], [326, '압구정', '3호선'], [325, '옥수', '3호선'], [324, '금호', '3호선'], [323, '약수', '3호선'], [322, '동대입구', '3호선'], [321, '충무로', '3호선'], [320, '을지로3가', '3호선'], [319, '종로3가', '3호선'], [318, '안국', '3호선'], [317, '경복궁(정부서울청사)', '3호선'], [316, '독립문', '3호선'], [315, '무악재', '3호선'], [314, '홍제', '3호선'], [313, '녹번', '3호선'], [312, '불광', '3호선'], [311, '연신내', '3호선'], [310, '구파발', '3호선'], [309, '지축', '3호선'], [250, '용두(동대문구청)', '2호선'], [249, '신정네거리', '2호선'], [248, '양천구청', '2호선'], [247, '도림천', '2호선'], [246, '신설동', '2호선'], [245, '신답', '2호선'], [244, '용답', '2호선'], [243, '충정로(경기대입구)', '2호선'], [242, '아현', '2호선'], [241, '이대', '2호선'], [240, '신촌', '2호선'], [239, '홍대입구', '2호선'], [238, '합정', '2호선'], [237, '당산', '2호선'], [236, '영등포구청', '2호선'], [235, '문래', '2호선'], [234, '신도림', '2호선'], [233, '대림(구로구청)', '2호선'], [232, '구로디지털단지', '2호선'], [231, '신대방', '2호선'], [230, '신림', '2호선'], [229, '봉천', '2호선'], [228, '서울대입구(관악구청)', '2호선'], [227, '낙성대', '2호선'], [226, '사당', '2호선'], [225, '방배', '2호선'], [223, '교대(법원.검찰청)', '2호선'], [222, '강남', '2호선'], [221, '역삼', '2호선'], [220, '선릉', '2호선'], [219, '삼성(무역센터)', '2호선'], [218, '종합운동장', '2호선'], [217, '잠실새내', '2호선'], [216, '잠실(송파구청)', '2호선'], [215, '잠실나루', '2호선'], [214, '강변(동서울터미널)', '2호선'], [213, '구의(광진구청)', '2호선'], [212, '건대입구', '2호선'], [211, '성수', '2호선'], [210, '뚝섬', '2호선'], [209, '한양대', '2호선'], [208, '왕십리(성동구청)', '2호선'], [207, '상왕십리', '2호선'], [206, '신당', '2호선'], [205, '동대문역사문화공원', '2호선'], [204, '을지로4가', '2호선'], [203, '을지로3가', '2호선'], [202, '을지로입구', '2호선'], [201, '시청', '2호선'], [159, '동묘앞', '1호선'], [158, '청량리(서울시립대입구)', '1호선'], [157, '제기동', '1호선'], [156, '신설동', '1호선'], [155, '동대문', '1호선'], [154, '종로5가', '1호선'], [153, '종로3가', '1호선'], [1022, '창동', '경원선'], [152, '종각', '1호선'], [151, '시청', '1호선'], [150, '서울역', '1호선'], [1220, '지평', '중앙선'], [1861, '보정', '분당선'], [1862, '죽전', '분당선'], [1863, '구성', '분당선'], [1864, '신갈', '분당선'], [1865, '기흥', '분당선'], [1866, '상갈', '분당선'], [1867, '청명', '분당선'], [1868, '영통', '분당선'], [1880, '소래포구', '수인선'], [1881, '인천논현', '수인선'], [1882, '호구포', '수인선'], [1883, '남동인더스파크', '수인선'], [1884, '원인재', '수인선'], [1885, '연수', '수인선'], [1886, '송도', '수인선'], [1888, '인하대', '수인선'], [1889, '숭의', '수인선'], [1890, '신포', '수인선'], [1891, '인천', '수인선'], [1751, '산본', '안산선'], [1752, '대야미', '안산선'], [1753, '반월', '안산선'], [1754, '상록수', '안산선'], [1755, '한대앞', '안산선'], [1756, '중앙', '안산선'], [1757, '고잔', '안산선'], [1758, '초지', '안산선'], [1759, '안산', '안산선'], [1760, '신길온천', '안산선'], [1761, '정왕', '안산선'], [1762, '오이도', '안산선'], [1763, '수리산', '안산선'], [4701, '북한산우이', '우이신설선'], [4702, '솔밭공원', '우이신설선'], [4703, '4.19민주묘지', '우이신설선'], [4704, '가오리', '우이신설선'], [4705, '화계', '우이신설선'], [4706, '삼양', '우이신설선'], [4707, '삼양사거리', '우이신설선'], [4708, '솔샘', '우이신설선'], [4709, '북한산보국문', '우이신설선'], [4710, '정릉', '우이신설선'], [4711, '성신여대입구(돈암)', '우이신설선'], [4712, '보문', '우이신설선'], [4713, '신설동', '우이신설선'], [1948, '원흥', '일산선'], [1950, '삼송', '일산선'], [1951, '원당', '일산선'], [1952, '화정', '일산선'], [1953, '대곡', '일산선'], [1954, '백석', '일산선'], [1955, '마두', '일산선'], [1956, '정발산', '일산선'], [1957, '주엽', '일산선'], [1958, '대화', '일산선'], [1401, '봉명', '장항선'], [1402, '쌍용(나사렛대)', '장항선'], [1403, '아산', '장항선'], [1405, '배방', '장항선'], [1407, '온양온천', '장항선'], [1408, '신창(순천향대)', '장항선'], [1015, '회기', '중앙선'], [1201, '중랑', '중앙선'], [1202, '상봉(시외버스터미널)', '중앙선'], [1203, '망우', '중앙선'], [1204, '양원', '중앙선'], [1205, '구리', '중앙선'], [1206, '도농', '중앙선'], [1207, '양정', '중앙선'], [1208, '덕소', '중앙선'], [1209, '도심', '중앙선'], [1210, '팔당', '중앙선'], [1211, '운길산', '중앙선'], [1454, '정부과천청사', '과천선'], [1455, '인덕원', '과천선'], [1456, '평촌', '과천선'], [1457, '범계', '과천선'], [1023, '선릉', '분당선'], [1024, '한티', '분당선'], [1025, '도곡', '분당선'], [1026, '구룡', '분당선'], [1027, '개포동', '분당선'], [1028, '대모산입구', '분당선'], [1311, '신내', '경춘선'], [1823, '도화', '경인선'], [1822, '중동', '경인선'], [1821, '온수(성공회대입구)', '경인선'], [1817, '도원', '경인선'], [1816, '간석', '경인선'], [1815, '부개', '경인선'], [1814, '소사', '경인선'], [1813, '구일', '경인선'], [1812, '인천', '경인선'], [1811, '동인천', '경인선'], [1810, '제물포', '경인선'], [1809, '주안', '경인선'], [1808, '동암', '경인선'], [1807, '백운', '경인선'], [1806, '부평', '경인선'], [1805, '송내', '경인선'], [1030, '수서', '분당선'], [2751, '천왕', '7호선'], [1846, '수원', '분당선'], [1847, '서울숲', '분당선'], [1848, '압구정로데오', '분당선'], [1849, '강남구청', '분당선'], [1850, '선정릉', '분당선'], [1851, '가천대', '분당선'], [1852, '태평', '분당선'], [1853, '모란', '분당선'], [1854, '야탑', '분당선'], [1855, '서현', '분당선'], [1856, '수내', '분당선'], [1857, '정자', '분당선'], [1858, '미금', '분당선'], [1859, '오리', '분당선'], [1860, '이매', '분당선'], [4208, '계양', '공항철도 1호선'], [4210, '청라국제도시', '공항철도 1호선'], [4207, '김포공항', '공항철도 1호선'], [4206, '마곡나루', '공항철도 1호선'], [4204, '디지털미디어시티', '공항철도 1호선'], [4203, '홍대입구', '공항철도 1호선'], [4202, '공덕', '공항철도 1호선'], [4201, '서울역', '공항철도 1호선'], [1329, '춘천', '경춘선'], [1328, '남춘천', '경춘선'], [1327, '김유정', '경춘선'], [1326, '강촌', '경춘선'], [1325, '백양리', '경춘선'], [1324, '굴봉산', '경춘선'], [4211, '운서', '공항철도 1호선'], [4212, '공항화물청사', '공항철도 1호선'], [4213, '인천공항1터미널', '공항철도 1호선'], [4215, '인천공항2터미널', '공항철도 1호선'], [4217, '영종', '공항철도 1호선'], [1450, '선바위', '과천선'], [1451, '경마공원', '과천선'], [1452, '대공원', '과천선'], [1453, '과천', '과천선'], [1212, '양수', '중앙선'], [1213, '신원', '중앙선'], [1214, '국수', '중앙선'], [1215, '아신', '중앙선'], [1216, '오빈', '중앙선'], [1217, '양평', '중앙선'], [1218, '원덕', '중앙선'], [1219, '용문', '중앙선'], [1024, '한티', '분당선'], [203, '을지로3가', '2호선'], [204, '을지로4가', '2호선'], [205, '동대문역사문화공원', '2호선'], [206, '신당', '2호선'], [207, '상왕십리', '2호선'], [208, '왕십리(성동구청)', '2호선'], [209, '한양대', '2호선'], [210, '뚝섬', '2호선'], [211, '성수', '2호선'], [212, '건대입구', '2호선'], [213, '구의(광진구청)', '2호선'], [214, '강변(동서울터미널)', '2호선'], [215, '잠실나루', '2호선'], [216, '잠실(송파구청)', '2호선'], [217, '잠실새내', '2호선'], [218, '종합운동장', '2호선'], [219, '삼성(무역센터)', '2호선'], [220, '선릉', '2호선'], [221, '역삼', '2호선'], [222, '강남', '2호선'], [223, '교대(법원.검찰청)', '2호선'], [224, '서초', '2호선'], [225, '방배', '2호선'], [226, '사당', '2호선'], [227, '낙성대', '2호선'], [1212, '양수', '중앙선'], [1213, '신원', '중앙선'], [1214, '국수', '중앙선'], [1220, '지평', '중앙선'], [1219, '용문', '중앙선'], [1218, '원덕', '중앙선'], [1217, '양평', '중앙선'], [1216, '오빈', '중앙선'], [1215, '아신', '중앙선'], [228, '서울대입구(관악구청)', '2호선'], [229, '봉천', '2호선'], [230, '신림', '2호선'], [231, '신대방', '2호선'], [232, '구로디지털단지', '2호선'], [233, '대림(구로구청)', '2호선'], [234, '신도림', '2호선'], [235, '문래', '2호선'], [236, '영등포구청', '2호선'], [237, '당산', '2호선'], [238, '합정', '2호선'], [239, '홍대입구', '2호선'], [240, '신촌', '2호선'], [241, '이대', '2호선'], [242, '아현', '2호선'], [243, '충정로(경기대입구)', '2호선'], [244, '용답', '2호선'], [245, '신답', '2호선'], [246, '신설동', '2호선'], [247, '도림천', '2호선'], [248, '양천구청', '2호선'], [249, '신정네거리', '2호선'], [250, '용두(동대문구청)', '2호선'], [309, '지축', '3호선'], [310, '구파발', '3호선'], [311, '연신내', '3호선'], [312, '불광', '3호선'], [313, '녹번', '3호선'], [314, '홍제', '3호선'], [315, '무악재', '3호선'], [316, '독립문', '3호선'], [317, '경복궁(정부서울청사)', '3호선'], [318, '안국', '3호선'], [319, '종로3가', '3호선'], [320, '을지로3가', '3호선'], [321, '충무로', '3호선'], [322, '동대입구', '3호선'], [323, '약수', '3호선'], [324, '금호', '3호선'], [325, '옥수', '3호선'], [326, '압구정', '3호선'], [327, '신사', '3호선'], [328, '잠원', '3호선'], [329, '고속터미널', '3호선'], [330, '교대(법원.검찰청)', '3호선'], [331, '남부터미널(예술의전당)', '3호선'], [332, '양재(서초구청)', '3호선'], [333, '매봉', '3호선'], [334, '도곡', '3호선'], [335, '대치', '3호선'], [336, '학여울', '3호선'], [337, '대청', '3호선'], [338, '일원', '3호선'], [339, '수서', '3호선'], [340, '가락시장', '3호선'], [341, '경찰병원', '3호선'], [342, '오금', '3호선'], [409, '당고개', '4호선'], [410, '상계', '4호선'], [411, '노원', '4호선'], [412, '창동', '4호선'], [413, '쌍문', '4호선'], [414, '수유(강북구청)', '4호선'], [415, '미아(서울사이버대학)', '4호선'], [416, '미아사거리', '4호선'], [417, '길음', '4호선'], [418, '성신여대입구(돈암)', '4호선'], [419, '한성대입구(삼선교)', '4호선'], [420, '혜화', '4호선'], [421, '동대문', '4호선'], [422, '동대문역사문화공원', '4호선'], [423, '충무로', '4호선'], [424, '명동', '4호선'], [425, '회현(남대문시장)', '4호선'], [426, '서울역', '4호선'], [427, '숙대입구(갈월)', '4호선'], [428, '삼각지', '4호선'], [429, '신용산', '4호선'], [430, '이촌(국립중앙박물관)', '4호선'], [431, '동작(현충원)', '4호선'], [432, '총신대입구(이수)', '4호선'], [433, '사당', '4호선'], [434, '남태령', '4호선'], [2511, '방화', '5호선'], [2512, '개화산', '5호선'], [2513, '김포공항', '5호선'], [2514, '송정', '5호선'], [2515, '마곡', '5호선'], [2516, '발산', '5호선'], [2517, '우장산', '5호선'], [2518, '화곡', '5호선'], [2519, '까치산', '5호선'], [2520, '신정(은행정)', '5호선'], [2521, '목동', '5호선'], [2522, '오목교(목동운동장앞)', '5호선'], [2523, '양평', '5호선'], [2524, '영등포구청', '5호선'], [2525, '영등포시장', '5호선'], [2526, '신길', '5호선'], [2527, '여의도', '5호선'], [2528, '여의나루', '5호선'], [2529, '마포', '5호선'], [2530, '공덕', '5호선'], [2531, '애오개', '5호선'], [2532, '충정로(경기대입구)', '5호선'], [2533, '서대문', '5호선'], [2534, '광화문(세종문화회관)', '5호선'], [2535, '종로3가', '5호선'], [2536, '을지로4가', '5호선'], [2537, '동대문역사문화공원', '5호선'], [2538, '청구', '5호선'], [2539, '신금호', '5호선'], [2540, '행당', '5호선'], [2541, '왕십리(성동구청)', '5호선'], [2542, '마장', '5호선'], [2543, '답십리', '5호선'], [2544, '장한평', '5호선'], [2545, '군자(능동)', '5호선'], [2546, '아차산(어린이대공원후문)', '5호선'], [2547, '광나루(장신대)', '5호선'], [2548, '천호(풍납토성)', '5호선'], [2549, '강동', '5호선'], [2550, '길동', '5호선'], [2551, '굽은다리(강동구민회관앞)', '5호선'], [2552, '명일', '5호선'], [2553, '고덕', '5호선'], [2554, '상일동', '5호선'], [2555, '둔촌동', '5호선'], [2556, '올림픽공원(한국체대)', '5호선'], [2557, '방이', '5호선'], [2558, '오금', '5호선'], [2559, '개롱', '5호선'], [2560, '거여', '5호선'], [2561, '마천', '5호선'], [2611, '응암', '6호선'], [2612, '역촌', '6호선'], [2613, '불광', '6호선'], [2614, '독바위', '6호선'], [2615, '연신내', '6호선'], [2616, '구산', '6호선'], [2617, '새절(신사)', '6호선'], [2618, '증산(명지대앞)', '6호선'], [2619, '디지털미디어시티', '6호선'], [2620, '월드컵경기장(성산)', '6호선'], [2621, '마포구청', '6호선'], [2622, '망원', '6호선'], [2623, '합정', '6호선'], [2624, '상수', '6호선'], [2625, '광흥창(서강)', '6호선'], [2626, '대흥(서강대앞)', '6호선'], [2627, '공덕', '6호선'], [2628, '효창공원앞', '6호선'], [2629, '삼각지', '6호선'], [2630, '녹사평(용산구청)', '6호선'], [2631, '이태원', '6호선'], [2632, '한강진', '6호선'], [2633, '버티고개', '6호선'], [2634, '약수', '6호선'], [2635, '청구', '6호선'], [2636, '신당', '6호선'], [2637, '동묘앞', '6호선'], [2638, '창신', '6호선'], [2639, '보문', '6호선'], [2640, '안암(고대병원앞)', '6호선'], [2641, '고려대(종암)', '6호선'], [2642, '월곡(동덕여대)', '6호선'], [2643, '상월곡(한국과학기술연구원)', '6호선'], [2644, '돌곶이', '6호선'], [2645, '석계', '6호선'], [2646, '태릉입구', '6호선'], [2647, '화랑대(서울여대입구)', '6호선'], [2648, '봉화산(서울의료원)', '6호선'], [2711, '장암', '7호선'], [2712, '도봉산', '7호선'], [2713, '수락산', '7호선'], [2714, '마들', '7호선'], [2715, '노원', '7호선'], [2716, '중계', '7호선'], [2717, '하계', '7호선'], [2718, '공릉(서울과학기술대)', '7호선'], [2719, '태릉입구', '7호선'], [2720, '먹골', '7호선'], [2721, '중화', '7호선'], [2722, '상봉(시외버스터미널)', '7호선'], [2723, '면목', '7호선'], [2724, '사가정', '7호선'], [2725, '용마산', '7호선'], [2726, '중곡', '7호선'], [2727, '군자(능동)', '7호선'], [2728, '어린이대공원(세종대)', '7호선'], [2729, '건대입구', '7호선'], [2730, '뚝섬유원지', '7호선'], [2731, '청담', '7호선'], [2732, '강남구청', '7호선'], [2733, '학동', '7호선'], [2734, '논현', '7호선'], [2735, '반포', '7호선'], [2736, '고속터미널', '7호선'], [2737, '내방', '7호선'], [2738, '이수', '7호선'], [2739, '남성', '7호선'], [2740, '숭실대입구(살피재)', '7호선'], [2741, '상도', '7호선'], [2742, '장승배기', '7호선'], [2743, '신대방삼거리', '7호선'], [2744, '보라매', '7호선'], [2745, '신풍', '7호선'], [2746, '대림(구로구청)', '7호선'], [2747, '남구로', '7호선'], [2748, '가산디지털단지', '7호선'], [2749, '철산', '7호선'], [2750, '광명사거리', '7호선'], [2751, '천왕', '7호선'], [2752, '온수(성공회대입구)', '7호선'], [2753, '까치울', '7호선'], [2754, '부천종합운동장', '7호선'], [2755, '춘의', '7호선'], [2756, '신중동', '7호선'], [2757, '부천시청', '7호선'], [2758, '상동', '7호선'], [2759, '삼산체육관', '7호선'], [2760, '굴포천', '7호선'], [2761, '부평구청', '7호선'], [2811, '암사', '8호선'], [2812, '천호(풍납토성)', '8호선'], [2813, '강동구청', '8호선'], [2814, '몽촌토성(평화의문)', '8호선'], [2815, '잠실(송파구청)', '8호선'], [2816, '석촌', '8호선'], [2817, '송파', '8호선'], [2818, '가락시장', '8호선'], [2819, '문정', '8호선'], [2820, '장지', '8호선'], [2821, '복정', '8호선'], [2822, '산성', '8호선'], [2823, '남한산성입구(성남법원.검찰청)', '8호선'], [2824, '단대오거리', '8호선'], [2825, '신흥', '8호선'], [2826, '수진', '8호선'], [2827, '모란', '8호선'], [4101, '개화', '9호선'], [4102, '김포공항', '9호선'], [4103, '공항시장', '9호선'], [4104, '신방화', '9호선'], [4105, '마곡나루', '9호선'], [4106, '양천향교', '9호선'], [4107, '가양', '9호선'], [4108, '증미', '9호선'], [4109, '등촌', '9호선'], [4110, '염창', '9호선'], [4111, '신목동', '9호선'], [4112, '선유도', '9호선'], [4113, '당산', '9호선'], [4114, '국회의사당', '9호선'], [4115, '여의도', '9호선'], [4116, '샛강', '9호선'], [4117, '노량진', '9호선'], [4118, '노들', '9호선'], [4119, '흑석(중앙대입구)', '9호선'], [4120, '동작(현충원)', '9호선'], [4121, '구반포', '9호선'], [4122, '신반포', '9호선'], [4123, '고속터미널', '9호선'], [4124, '사평', '9호선'], [4125, '신논현', '9호선'], [4126, '언주', '9호선2~3단계'], [4127, '선정릉', '9호선2~3단계'], [4128, '삼성중앙', '9호선2~3단계'], [4129, '봉은사', '9호선2~3단계'], [4130, '종합운동장', '9호선2~3단계'], [4131, '삼전', '9호선2~3단계'], [4132, '석촌고분', '9호선2~3단계'], [4133, '석촌', '9호선2~3단계'], [4134, '송파나루', '9호선2~3단계'], [4135, '한성백제', '9호선2~3단계'], [4136, '올림픽공원(한국체대)', '9호선2~3단계'], [4137, '둔촌오륜', '9호선2~3단계'], [4138, '중앙보훈병원', '9호선2~3단계'], [1501, '판교', '경강선'], [1502, '이매', '경강선'], [1503, '삼동', '경강선'], [1504, '경기광주', '경강선'], [1505, '초월', '경강선'], [1506, '곤지암', '경강선'], [1507, '신둔도예촌', '경강선'], [1508, '이천', '경강선'], [1509, '부발', '경강선'], [1510, '세종대왕릉', '경강선'], [1511, '여주', '경강선'], [1001, '서울역', '경부선'], [1002, '남영', '경부선'], [1003, '용산', '경부선'], [1004, '노량진', '경부선'], [1005, '대방', '경부선'], [1006, '영등포', '경부선'], [1007, '신도림', '경부선'], [1032, '신길', '경부선'], [1701, '구로', '경부선'], [1702, '가산디지털단지', '경부선'], [1703, '금천구청', '경부선'], [1704, '석수', '경부선'], [1705, '관악', '경부선'], [1706, '안양', '경부선'], [1707, '명학', '경부선'], [1708, '금정', '경부선'], [1709, '군포', '경부선'], [1710, '의왕', '경부선'], [1711, '성균관대', '경부선'], [1712, '화서', '경부선'], [1713, '수원', '경부선'], [1714, '독산', '경부선'], [1715, '세류', '경부선'], [1716, '병점', '경부선'], [1717, '세마', '경부선'], [1718, '오산대', '경부선'], [1719, '오산', '경부선'], [1720, '진위', '경부선'], [1721, '송탄', '경부선'], [1722, '서정리', '경부선'], [1723, '지제', '경부선'], [1724, '평택', '경부선'], [1725, '성환', '경부선'], [1726, '직산', '경부선'], [1727, '두정', '경부선'], [1728, '천안', '경부선'], [1729, '당정', '경부선'], [1749, '서동탄', '경부선'], [1750, '광명', '경부선'], [1008, '이촌(국립중앙박물관)', '경원선'], [1009, '서빙고', '경원선'], [1010, '한남', '경원선'], [1011, '옥수', '경원선'], [1012, '응봉', '경원선'], [1013, '왕십리(성동구청)', '경원선'], [1014, '청량리(서울시립대입구)', '경원선'], [1016, '외대앞', '경원선'], [1017, '신이문', '경원선'], [1018, '석계', '경원선'], [1019, '광운대', '경원선'], [1020, '월계', '경원선'], [1021, '녹천', '경원선'], [1901, '방학', '경원선'], [1902, '도봉', '경원선'], [1903, '도봉산', '경원선'], [1904, '망월사', '경원선'], [1905, '회룡', '경원선'], [1906, '의정부', '경원선'], [1907, '가능', '경원선'], [1908, '녹양', '경원선'], [1909, '양주', '경원선'], [1910, '덕계', '경원선'], [1911, '덕정', '경원선'], [1912, '지행', '경원선'], [1913, '동두천중앙', '경원선'], [1914, '보산', '경원선'], [1915, '동두천', '경원선'], [1916, '소요산', '경원선'], [1251, '서울역', '경의선'], [1252, '신촌', '경의선'], [1261, '효창공원앞', '경의선'], [1262, '공덕', '경의선'], [1263, '서강대', '경의선'], [1264, '홍대입구', '경의선'], [1265, '가좌', '경의선'], [1266, '디지털미디어시티', '경의선'], [1267, '수색', '경의선'], [1268, '화전', '경의선'], [1269, '강매', '경의선'], [1270, '행신', '경의선'], [1271, '능곡', '경의선'], [1272, '곡산', '경의선'], [1273, '백마', '경의선'], [1274, '풍산', '경의선'], ...]
station_code = data[['역ID','역명','노선명']].drop_duplicates().sort_values('역ID').reset_index(drop=True)
station_code
역ID | 역명 | 노선명 | |
---|---|---|---|
0 | 150 | 서울역 | 1호선 |
1 | 151 | 시청 | 1호선 |
2 | 152 | 종각 | 1호선 |
3 | 153 | 종로3가 | 1호선 |
4 | 154 | 종로5가 | 1호선 |
5 | 155 | 동대문 | 1호선 |
6 | 156 | 신설동 | 1호선 |
7 | 157 | 제기동 | 1호선 |
8 | 158 | 청량리(서울시립대입구) | 1호선 |
9 | 159 | 동묘앞 | 1호선 |
10 | 201 | 시청 | 2호선 |
11 | 202 | 을지로입구 | 2호선 |
12 | 203 | 을지로3가 | 2호선 |
13 | 204 | 을지로4가 | 2호선 |
14 | 205 | 동대문역사문화공원 | 2호선 |
15 | 206 | 신당 | 2호선 |
16 | 207 | 상왕십리 | 2호선 |
17 | 208 | 왕십리(성동구청) | 2호선 |
18 | 209 | 한양대 | 2호선 |
19 | 210 | 뚝섬 | 2호선 |
20 | 211 | 성수 | 2호선 |
21 | 212 | 건대입구 | 2호선 |
22 | 213 | 구의(광진구청) | 2호선 |
23 | 214 | 강변(동서울터미널) | 2호선 |
24 | 215 | 잠실나루 | 2호선 |
25 | 216 | 잠실(송파구청) | 2호선 |
26 | 217 | 잠실새내 | 2호선 |
27 | 218 | 종합운동장 | 2호선 |
28 | 219 | 삼성(무역센터) | 2호선 |
29 | 220 | 선릉 | 2호선 |
... | ... | ... | ... |
568 | 4136 | 올림픽공원(한국체대) | 9호선2~3단계 |
569 | 4137 | 둔촌오륜 | 9호선2~3단계 |
570 | 4138 | 중앙보훈병원 | 9호선2~3단계 |
571 | 4201 | 서울역 | 공항철도 1호선 |
572 | 4202 | 공덕 | 공항철도 1호선 |
573 | 4203 | 홍대입구 | 공항철도 1호선 |
574 | 4204 | 디지털미디어시티 | 공항철도 1호선 |
575 | 4206 | 마곡나루 | 공항철도 1호선 |
576 | 4207 | 김포공항 | 공항철도 1호선 |
577 | 4208 | 계양 | 공항철도 1호선 |
578 | 4209 | 검암 | 공항철도 1호선 |
579 | 4210 | 청라국제도시 | 공항철도 1호선 |
580 | 4211 | 운서 | 공항철도 1호선 |
581 | 4212 | 공항화물청사 | 공항철도 1호선 |
582 | 4213 | 인천공항1터미널 | 공항철도 1호선 |
583 | 4215 | 인천공항2터미널 | 공항철도 1호선 |
584 | 4217 | 영종 | 공항철도 1호선 |
585 | 4701 | 북한산우이 | 우이신설선 |
586 | 4702 | 솔밭공원 | 우이신설선 |
587 | 4703 | 4.19민주묘지 | 우이신설선 |
588 | 4704 | 가오리 | 우이신설선 |
589 | 4705 | 화계 | 우이신설선 |
590 | 4706 | 삼양 | 우이신설선 |
591 | 4707 | 삼양사거리 | 우이신설선 |
592 | 4708 | 솔샘 | 우이신설선 |
593 | 4709 | 북한산보국문 | 우이신설선 |
594 | 4710 | 정릉 | 우이신설선 |
595 | 4711 | 성신여대입구(돈암) | 우이신설선 |
596 | 4712 | 보문 | 우이신설선 |
597 | 4713 | 신설동 | 우이신설선 |
598 rows × 3 columns
data.역ID.unique().shape
(598,)
s = station_code.역명.value_counts()
s[s>2]
서울역 6 공덕 4 김포공항 4 홍대입구 4 왕십리(성동구청) 3 디지털미디어시티 3 종로3가 3 고속터미널 3 신설동 3 동대문역사문화공원 3 Name: 역명, dtype: int64
station_code['노선수'] = station_code.역명.map(s)
station_code
역ID | 역명 | 노선명 | 노선수 | |
---|---|---|---|---|
0 | 150 | 서울역 | 1호선 | 6 |
1 | 151 | 시청 | 1호선 | 2 |
2 | 152 | 종각 | 1호선 | 1 |
3 | 153 | 종로3가 | 1호선 | 3 |
4 | 154 | 종로5가 | 1호선 | 1 |
5 | 155 | 동대문 | 1호선 | 2 |
6 | 156 | 신설동 | 1호선 | 3 |
7 | 157 | 제기동 | 1호선 | 1 |
8 | 158 | 청량리(서울시립대입구) | 1호선 | 2 |
9 | 159 | 동묘앞 | 1호선 | 2 |
10 | 201 | 시청 | 2호선 | 2 |
11 | 202 | 을지로입구 | 2호선 | 1 |
12 | 203 | 을지로3가 | 2호선 | 2 |
13 | 204 | 을지로4가 | 2호선 | 2 |
14 | 205 | 동대문역사문화공원 | 2호선 | 3 |
15 | 206 | 신당 | 2호선 | 2 |
16 | 207 | 상왕십리 | 2호선 | 1 |
17 | 208 | 왕십리(성동구청) | 2호선 | 3 |
18 | 209 | 한양대 | 2호선 | 1 |
19 | 210 | 뚝섬 | 2호선 | 1 |
20 | 211 | 성수 | 2호선 | 1 |
21 | 212 | 건대입구 | 2호선 | 2 |
22 | 213 | 구의(광진구청) | 2호선 | 1 |
23 | 214 | 강변(동서울터미널) | 2호선 | 1 |
24 | 215 | 잠실나루 | 2호선 | 1 |
25 | 216 | 잠실(송파구청) | 2호선 | 2 |
26 | 217 | 잠실새내 | 2호선 | 1 |
27 | 218 | 종합운동장 | 2호선 | 2 |
28 | 219 | 삼성(무역센터) | 2호선 | 1 |
29 | 220 | 선릉 | 2호선 | 2 |
... | ... | ... | ... | ... |
568 | 4136 | 올림픽공원(한국체대) | 9호선2~3단계 | 2 |
569 | 4137 | 둔촌오륜 | 9호선2~3단계 | 1 |
570 | 4138 | 중앙보훈병원 | 9호선2~3단계 | 1 |
571 | 4201 | 서울역 | 공항철도 1호선 | 6 |
572 | 4202 | 공덕 | 공항철도 1호선 | 4 |
573 | 4203 | 홍대입구 | 공항철도 1호선 | 4 |
574 | 4204 | 디지털미디어시티 | 공항철도 1호선 | 3 |
575 | 4206 | 마곡나루 | 공항철도 1호선 | 2 |
576 | 4207 | 김포공항 | 공항철도 1호선 | 4 |
577 | 4208 | 계양 | 공항철도 1호선 | 2 |
578 | 4209 | 검암 | 공항철도 1호선 | 2 |
579 | 4210 | 청라국제도시 | 공항철도 1호선 | 1 |
580 | 4211 | 운서 | 공항철도 1호선 | 1 |
581 | 4212 | 공항화물청사 | 공항철도 1호선 | 1 |
582 | 4213 | 인천공항1터미널 | 공항철도 1호선 | 1 |
583 | 4215 | 인천공항2터미널 | 공항철도 1호선 | 1 |
584 | 4217 | 영종 | 공항철도 1호선 | 1 |
585 | 4701 | 북한산우이 | 우이신설선 | 1 |
586 | 4702 | 솔밭공원 | 우이신설선 | 1 |
587 | 4703 | 4.19민주묘지 | 우이신설선 | 1 |
588 | 4704 | 가오리 | 우이신설선 | 1 |
589 | 4705 | 화계 | 우이신설선 | 1 |
590 | 4706 | 삼양 | 우이신설선 | 1 |
591 | 4707 | 삼양사거리 | 우이신설선 | 1 |
592 | 4708 | 솔샘 | 우이신설선 | 1 |
593 | 4709 | 북한산보국문 | 우이신설선 | 1 |
594 | 4710 | 정릉 | 우이신설선 | 1 |
595 | 4711 | 성신여대입구(돈암) | 우이신설선 | 2 |
596 | 4712 | 보문 | 우이신설선 | 2 |
597 | 4713 | 신설동 | 우이신설선 | 3 |
598 rows × 4 columns
station_code.sort_values(['노선수','역명'],ascending=False)
역ID | 역명 | 노선명 | 노선수 | |
---|---|---|---|---|
0 | 150 | 서울역 | 1호선 | 6 |
111 | 426 | 서울역 | 4호선 | 6 |
120 | 1001 | 서울역 | 경부선 | 6 |
171 | 1251 | 서울역 | 경의선 | 6 |
196 | 1291 | 서울역 | 경의선 | 6 |
571 | 4201 | 서울역 | 공항철도 1호선 | 6 |
48 | 239 | 홍대입구 | 2호선 | 4 |
176 | 1264 | 홍대입구 | 경의선 | 4 |
197 | 1293 | 홍대입구 | 경의선 | 4 |
573 | 4203 | 홍대입구 | 공항철도 1호선 | 4 |
198 | 1295 | 김포공항 | 경의선 | 4 |
378 | 2513 | 김포공항 | 5호선 | 4 |
534 | 4102 | 김포공항 | 9호선 | 4 |
576 | 4207 | 김포공항 | 공항철도 1호선 | 4 |
174 | 1262 | 공덕 | 경의선 | 4 |
395 | 2530 | 공덕 | 5호선 | 4 |
443 | 2627 | 공덕 | 6호선 | 4 |
572 | 4202 | 공덕 | 공항철도 1호선 | 4 |
3 | 153 | 종로3가 | 1호선 | 3 |
70 | 319 | 종로3가 | 3호선 | 3 |
400 | 2535 | 종로3가 | 5호선 | 3 |
17 | 208 | 왕십리(성동구청) | 2호선 | 3 |
132 | 1013 | 왕십리(성동구청) | 경원선 | 3 |
406 | 2541 | 왕십리(성동구청) | 5호선 | 3 |
6 | 156 | 신설동 | 1호선 | 3 |
55 | 246 | 신설동 | 2호선 | 3 |
597 | 4713 | 신설동 | 우이신설선 | 3 |
178 | 1266 | 디지털미디어시티 | 경의선 | 3 |
435 | 2619 | 디지털미디어시티 | 6호선 | 3 |
574 | 4204 | 디지털미디어시티 | 공항철도 1호선 | 3 |
... | ... | ... | ... | ... |
239 | 1506 | 곤지암 | 경강선 | 1 |
184 | 1272 | 곡산 | 경의선 | 1 |
282 | 1757 | 고잔 | 안산선 | 1 |
457 | 2641 | 고려대(종암) | 6호선 | 1 |
418 | 2553 | 고덕 | 5호선 | 1 |
92 | 341 | 경찰병원 | 3호선 | 1 |
68 | 317 | 경복궁(정부서울청사) | 3호선 | 1 |
227 | 1451 | 경마공원 | 과천선 | 1 |
237 | 1504 | 경기광주 | 경강선 | 1 |
425 | 2560 | 거여 | 5호선 | 1 |
377 | 2512 | 개화산 | 5호선 | 1 |
533 | 4101 | 개화 | 9호선 | 1 |
146 | 1027 | 개포동 | 분당선 | 1 |
289 | 1801 | 개봉 | 경인선 | 1 |
424 | 2559 | 개롱 | 5호선 | 1 |
216 | 1326 | 강촌 | 경춘선 | 1 |
23 | 214 | 강변(동서울터미널) | 2호선 | 1 |
181 | 1269 | 강매 | 경의선 | 1 |
518 | 2813 | 강동구청 | 8호선 | 1 |
414 | 2549 | 강동 | 5호선 | 1 |
31 | 222 | 강남 | 2호선 | 1 |
202 | 1312 | 갈매 | 경춘선 | 1 |
304 | 1816 | 간석 | 경인선 | 1 |
213 | 1323 | 가평 | 경춘선 | 1 |
314 | 1851 | 가천대 | 분당선 | 1 |
177 | 1265 | 가좌 | 경의선 | 1 |
588 | 4704 | 가오리 | 우이신설선 | 1 |
539 | 4107 | 가양 | 9호선 | 1 |
355 | 1907 | 가능 | 경원선 | 1 |
587 | 4703 | 4.19민주묘지 | 우이신설선 | 1 |
598 rows × 4 columns
Merge¶
s = data.groupby('역ID')['승차총승객수'].mean(); s.name='승차평균'
data2 = pd.merge(data, s.to_frame(), left_on='역ID', right_index=True).sort_index()
data2
# data2 = data.copy()
# data2['승차평균'] = data2.역ID.map(s)
# data2
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | 승차평균 | |
---|---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 | 1792.548387 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 | 290.870968 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 | 1948.516129 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 | 575.806452 |
4 | 20190101 | 경춘선 | 1319 | 마석 | 1772 | 1963 | 20190104 | 3518.064516 |
5 | 20190101 | 경춘선 | 1318 | 천마산 | 787 | 765 | 20190104 | 1469.903226 |
6 | 20190101 | 경춘선 | 1317 | 평내호평 | 2649 | 2661 | 20190104 | 5584.741935 |
7 | 20190101 | 경춘선 | 1316 | 금곡 | 734 | 726 | 20190104 | 1456.129032 |
8 | 20190101 | 경춘선 | 1315 | 사릉 | 1347 | 1534 | 20190104 | 3257.161290 |
9 | 20190101 | 경춘선 | 1314 | 퇴계원 | 1542 | 1516 | 20190104 | 3450.967742 |
10 | 20190101 | 경춘선 | 1313 | 별내 | 1321 | 1232 | 20190104 | 2392.516129 |
11 | 20190101 | 경춘선 | 1312 | 갈매 | 1068 | 954 | 20190104 | 2569.064516 |
12 | 20190101 | 경인선 | 1804 | 부천 | 24321 | 24169 | 20190104 | 38778.774194 |
13 | 20190101 | 경인선 | 1803 | 역곡 | 13653 | 14049 | 20190104 | 29148.354839 |
14 | 20190101 | 경인선 | 1802 | 오류동 | 7126 | 6603 | 20190104 | 12159.903226 |
15 | 20190101 | 경인선 | 1801 | 개봉 | 11366 | 11785 | 20190104 | 23460.870968 |
16 | 20190101 | 경의선 | 1296 | 계양 | 1 | 0 | 20190104 | 1.000000 |
17 | 20190101 | 경의선 | 1284 | 문산 | 3860 | 4170 | 20190104 | 5849.193548 |
18 | 20190101 | 경의선 | 1283 | 파주 | 729 | 659 | 20190104 | 1189.290323 |
19 | 20190101 | 경의선 | 1282 | 월롱 | 719 | 1761 | 20190104 | 2223.870968 |
20 | 20190101 | 경의선 | 1280 | 금촌 | 4346 | 5071 | 20190104 | 6907.677419 |
21 | 20190101 | 경의선 | 1279 | 금릉 | 2311 | 2469 | 20190104 | 4455.935484 |
22 | 20190101 | 경의선 | 1278 | 운정 | 2572 | 2670 | 20190104 | 5617.903226 |
23 | 20190101 | 경의선 | 1277 | 야당 | 2377 | 2265 | 20190104 | 4832.967742 |
24 | 20190101 | 경의선 | 1276 | 탄현 | 3252 | 3199 | 20190104 | 7454.612903 |
25 | 20190101 | 경의선 | 1275 | 일산 | 3725 | 3768 | 20190104 | 8871.064516 |
26 | 20190101 | 경의선 | 1274 | 풍산 | 2476 | 2508 | 20190104 | 5227.903226 |
27 | 20190101 | 경의선 | 1273 | 백마 | 2606 | 2497 | 20190104 | 6554.225806 |
28 | 20190101 | 경의선 | 1272 | 곡산 | 215 | 209 | 20190104 | 515.064516 |
29 | 20190101 | 경의선 | 1271 | 능곡 | 1748 | 1700 | 20190104 | 3580.193548 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
18304 | 20190131 | 2호선 | 221 | 역삼 | 63414 | 69744 | 20190203 | 50060.032258 |
18305 | 20190131 | 2호선 | 220 | 선릉 | 69459 | 61644 | 20190203 | 56247.870968 |
18306 | 20190131 | 2호선 | 219 | 삼성(무역센터) | 65186 | 67747 | 20190203 | 59327.322581 |
18307 | 20190131 | 2호선 | 218 | 종합운동장 | 10254 | 10959 | 20190203 | 9544.741935 |
18308 | 20190131 | 2호선 | 217 | 잠실새내 | 27967 | 27937 | 20190203 | 24775.741935 |
18309 | 20190131 | 2호선 | 216 | 잠실(송파구청) | 89355 | 85642 | 20190203 | 84706.096774 |
18310 | 20190131 | 2호선 | 215 | 잠실나루 | 20006 | 19265 | 20190203 | 16557.064516 |
18311 | 20190131 | 2호선 | 214 | 강변(동서울터미널) | 44302 | 44291 | 20190203 | 44428.096774 |
18312 | 20190131 | 2호선 | 213 | 구의(광진구청) | 28067 | 26975 | 20190203 | 24216.548387 |
18313 | 20190131 | 2호선 | 212 | 건대입구 | 44899 | 49051 | 20190203 | 43045.354839 |
18314 | 20190131 | 2호선 | 211 | 성수 | 34567 | 37720 | 20190203 | 28306.000000 |
18315 | 20190131 | 2호선 | 210 | 뚝섬 | 21130 | 22598 | 20190203 | 17314.580645 |
18316 | 20190131 | 2호선 | 209 | 한양대 | 8791 | 9700 | 20190203 | 8037.580645 |
18317 | 20190131 | 2호선 | 208 | 왕십리(성동구청) | 20764 | 17129 | 20190203 | 18930.774194 |
18318 | 20190131 | 2호선 | 207 | 상왕십리 | 16668 | 15952 | 20190203 | 14224.806452 |
18319 | 20190131 | 2호선 | 206 | 신당 | 16242 | 16890 | 20190203 | 14704.548387 |
18320 | 20190131 | 2호선 | 205 | 동대문역사문화공원 | 17863 | 20145 | 20190203 | 17079.548387 |
18321 | 20190131 | 2호선 | 204 | 을지로4가 | 13946 | 13843 | 20190203 | 12172.645161 |
18322 | 20190131 | 2호선 | 203 | 을지로3가 | 26344 | 26216 | 20190203 | 22601.516129 |
18323 | 20190131 | 2호선 | 202 | 을지로입구 | 55692 | 56015 | 20190203 | 49543.193548 |
18324 | 20190131 | 2호선 | 201 | 시청 | 29981 | 29575 | 20190203 | 24746.935484 |
18325 | 20190131 | 1호선 | 159 | 동묘앞 | 9483 | 9727 | 20190203 | 10345.709677 |
18326 | 20190131 | 1호선 | 158 | 청량리(서울시립대입구) | 29384 | 30328 | 20190203 | 26308.935484 |
18327 | 20190131 | 1호선 | 157 | 제기동 | 25142 | 26221 | 20190203 | 21551.967742 |
18328 | 20190131 | 1호선 | 156 | 신설동 | 18001 | 17784 | 20190203 | 15710.548387 |
18329 | 20190131 | 1호선 | 155 | 동대문 | 14563 | 15139 | 20190203 | 14270.064516 |
18330 | 20190131 | 1호선 | 154 | 종로5가 | 30249 | 29703 | 20190203 | 27331.322581 |
18331 | 20190131 | 1호선 | 153 | 종로3가 | 36804 | 35050 | 20190203 | 35166.838710 |
18332 | 20190131 | 1호선 | 152 | 종각 | 51970 | 50080 | 20190203 | 45265.161290 |
18333 | 20190131 | 1호선 | 151 | 시청 | 29059 | 29169 | 20190203 | 25139.354839 |
18334 rows × 8 columns
concat()¶
df = pd.concat([data,data[['승차총승객수','하차총승객수']].mean(axis=1)], axis=1)
df.columns = df.columns[:-1].tolist()+['평균']
df
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | 평균 | |
---|---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 | 1478.0 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 | 194.5 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 | 1296.0 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 | 314.0 |
4 | 20190101 | 경춘선 | 1319 | 마석 | 1772 | 1963 | 20190104 | 1867.5 |
5 | 20190101 | 경춘선 | 1318 | 천마산 | 787 | 765 | 20190104 | 776.0 |
6 | 20190101 | 경춘선 | 1317 | 평내호평 | 2649 | 2661 | 20190104 | 2655.0 |
7 | 20190101 | 경춘선 | 1316 | 금곡 | 734 | 726 | 20190104 | 730.0 |
8 | 20190101 | 경춘선 | 1315 | 사릉 | 1347 | 1534 | 20190104 | 1440.5 |
9 | 20190101 | 경춘선 | 1314 | 퇴계원 | 1542 | 1516 | 20190104 | 1529.0 |
10 | 20190101 | 경춘선 | 1313 | 별내 | 1321 | 1232 | 20190104 | 1276.5 |
11 | 20190101 | 경춘선 | 1312 | 갈매 | 1068 | 954 | 20190104 | 1011.0 |
12 | 20190101 | 경인선 | 1804 | 부천 | 24321 | 24169 | 20190104 | 24245.0 |
13 | 20190101 | 경인선 | 1803 | 역곡 | 13653 | 14049 | 20190104 | 13851.0 |
14 | 20190101 | 경인선 | 1802 | 오류동 | 7126 | 6603 | 20190104 | 6864.5 |
15 | 20190101 | 경인선 | 1801 | 개봉 | 11366 | 11785 | 20190104 | 11575.5 |
16 | 20190101 | 경의선 | 1296 | 계양 | 1 | 0 | 20190104 | 0.5 |
17 | 20190101 | 경의선 | 1284 | 문산 | 3860 | 4170 | 20190104 | 4015.0 |
18 | 20190101 | 경의선 | 1283 | 파주 | 729 | 659 | 20190104 | 694.0 |
19 | 20190101 | 경의선 | 1282 | 월롱 | 719 | 1761 | 20190104 | 1240.0 |
20 | 20190101 | 경의선 | 1280 | 금촌 | 4346 | 5071 | 20190104 | 4708.5 |
21 | 20190101 | 경의선 | 1279 | 금릉 | 2311 | 2469 | 20190104 | 2390.0 |
22 | 20190101 | 경의선 | 1278 | 운정 | 2572 | 2670 | 20190104 | 2621.0 |
23 | 20190101 | 경의선 | 1277 | 야당 | 2377 | 2265 | 20190104 | 2321.0 |
24 | 20190101 | 경의선 | 1276 | 탄현 | 3252 | 3199 | 20190104 | 3225.5 |
25 | 20190101 | 경의선 | 1275 | 일산 | 3725 | 3768 | 20190104 | 3746.5 |
26 | 20190101 | 경의선 | 1274 | 풍산 | 2476 | 2508 | 20190104 | 2492.0 |
27 | 20190101 | 경의선 | 1273 | 백마 | 2606 | 2497 | 20190104 | 2551.5 |
28 | 20190101 | 경의선 | 1272 | 곡산 | 215 | 209 | 20190104 | 212.0 |
29 | 20190101 | 경의선 | 1271 | 능곡 | 1748 | 1700 | 20190104 | 1724.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
18304 | 20190131 | 2호선 | 221 | 역삼 | 63414 | 69744 | 20190203 | 66579.0 |
18305 | 20190131 | 2호선 | 220 | 선릉 | 69459 | 61644 | 20190203 | 65551.5 |
18306 | 20190131 | 2호선 | 219 | 삼성(무역센터) | 65186 | 67747 | 20190203 | 66466.5 |
18307 | 20190131 | 2호선 | 218 | 종합운동장 | 10254 | 10959 | 20190203 | 10606.5 |
18308 | 20190131 | 2호선 | 217 | 잠실새내 | 27967 | 27937 | 20190203 | 27952.0 |
18309 | 20190131 | 2호선 | 216 | 잠실(송파구청) | 89355 | 85642 | 20190203 | 87498.5 |
18310 | 20190131 | 2호선 | 215 | 잠실나루 | 20006 | 19265 | 20190203 | 19635.5 |
18311 | 20190131 | 2호선 | 214 | 강변(동서울터미널) | 44302 | 44291 | 20190203 | 44296.5 |
18312 | 20190131 | 2호선 | 213 | 구의(광진구청) | 28067 | 26975 | 20190203 | 27521.0 |
18313 | 20190131 | 2호선 | 212 | 건대입구 | 44899 | 49051 | 20190203 | 46975.0 |
18314 | 20190131 | 2호선 | 211 | 성수 | 34567 | 37720 | 20190203 | 36143.5 |
18315 | 20190131 | 2호선 | 210 | 뚝섬 | 21130 | 22598 | 20190203 | 21864.0 |
18316 | 20190131 | 2호선 | 209 | 한양대 | 8791 | 9700 | 20190203 | 9245.5 |
18317 | 20190131 | 2호선 | 208 | 왕십리(성동구청) | 20764 | 17129 | 20190203 | 18946.5 |
18318 | 20190131 | 2호선 | 207 | 상왕십리 | 16668 | 15952 | 20190203 | 16310.0 |
18319 | 20190131 | 2호선 | 206 | 신당 | 16242 | 16890 | 20190203 | 16566.0 |
18320 | 20190131 | 2호선 | 205 | 동대문역사문화공원 | 17863 | 20145 | 20190203 | 19004.0 |
18321 | 20190131 | 2호선 | 204 | 을지로4가 | 13946 | 13843 | 20190203 | 13894.5 |
18322 | 20190131 | 2호선 | 203 | 을지로3가 | 26344 | 26216 | 20190203 | 26280.0 |
18323 | 20190131 | 2호선 | 202 | 을지로입구 | 55692 | 56015 | 20190203 | 55853.5 |
18324 | 20190131 | 2호선 | 201 | 시청 | 29981 | 29575 | 20190203 | 29778.0 |
18325 | 20190131 | 1호선 | 159 | 동묘앞 | 9483 | 9727 | 20190203 | 9605.0 |
18326 | 20190131 | 1호선 | 158 | 청량리(서울시립대입구) | 29384 | 30328 | 20190203 | 29856.0 |
18327 | 20190131 | 1호선 | 157 | 제기동 | 25142 | 26221 | 20190203 | 25681.5 |
18328 | 20190131 | 1호선 | 156 | 신설동 | 18001 | 17784 | 20190203 | 17892.5 |
18329 | 20190131 | 1호선 | 155 | 동대문 | 14563 | 15139 | 20190203 | 14851.0 |
18330 | 20190131 | 1호선 | 154 | 종로5가 | 30249 | 29703 | 20190203 | 29976.0 |
18331 | 20190131 | 1호선 | 153 | 종로3가 | 36804 | 35050 | 20190203 | 35927.0 |
18332 | 20190131 | 1호선 | 152 | 종각 | 51970 | 50080 | 20190203 | 51025.0 |
18333 | 20190131 | 1호선 | 151 | 시청 | 29059 | 29169 | 20190203 | 29114.0 |
18334 rows × 8 columns
df2 = pd.concat([df, df], axis=1)
df2.shape, df.shape
((18334, 16), (18334, 8))
data.take([1,3,5])
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 |
5 | 20190101 | 경춘선 | 1318 | 천마산 | 787 | 765 | 20190104 |
get_dummies()¶
data.join(pd.get_dummies(data.노선명))
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | 1호선 | 2호선 | 3호선 | ... | 경춘선 | 공항철도 1호선 | 과천선 | 분당선 | 수인선 | 안산선 | 우이신설선 | 일산선 | 장항선 | 중앙선 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | 20190101 | 경춘선 | 1319 | 마석 | 1772 | 1963 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 | 20190101 | 경춘선 | 1318 | 천마산 | 787 | 765 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
6 | 20190101 | 경춘선 | 1317 | 평내호평 | 2649 | 2661 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 20190101 | 경춘선 | 1316 | 금곡 | 734 | 726 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
8 | 20190101 | 경춘선 | 1315 | 사릉 | 1347 | 1534 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
9 | 20190101 | 경춘선 | 1314 | 퇴계원 | 1542 | 1516 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
10 | 20190101 | 경춘선 | 1313 | 별내 | 1321 | 1232 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
11 | 20190101 | 경춘선 | 1312 | 갈매 | 1068 | 954 | 20190104 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
12 | 20190101 | 경인선 | 1804 | 부천 | 24321 | 24169 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
13 | 20190101 | 경인선 | 1803 | 역곡 | 13653 | 14049 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
14 | 20190101 | 경인선 | 1802 | 오류동 | 7126 | 6603 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
15 | 20190101 | 경인선 | 1801 | 개봉 | 11366 | 11785 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
16 | 20190101 | 경의선 | 1296 | 계양 | 1 | 0 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
17 | 20190101 | 경의선 | 1284 | 문산 | 3860 | 4170 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18 | 20190101 | 경의선 | 1283 | 파주 | 729 | 659 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
19 | 20190101 | 경의선 | 1282 | 월롱 | 719 | 1761 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
20 | 20190101 | 경의선 | 1280 | 금촌 | 4346 | 5071 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
21 | 20190101 | 경의선 | 1279 | 금릉 | 2311 | 2469 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
22 | 20190101 | 경의선 | 1278 | 운정 | 2572 | 2670 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
23 | 20190101 | 경의선 | 1277 | 야당 | 2377 | 2265 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
24 | 20190101 | 경의선 | 1276 | 탄현 | 3252 | 3199 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
25 | 20190101 | 경의선 | 1275 | 일산 | 3725 | 3768 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
26 | 20190101 | 경의선 | 1274 | 풍산 | 2476 | 2508 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
27 | 20190101 | 경의선 | 1273 | 백마 | 2606 | 2497 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
28 | 20190101 | 경의선 | 1272 | 곡산 | 215 | 209 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
29 | 20190101 | 경의선 | 1271 | 능곡 | 1748 | 1700 | 20190104 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
18304 | 20190131 | 2호선 | 221 | 역삼 | 63414 | 69744 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18305 | 20190131 | 2호선 | 220 | 선릉 | 69459 | 61644 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18306 | 20190131 | 2호선 | 219 | 삼성(무역센터) | 65186 | 67747 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18307 | 20190131 | 2호선 | 218 | 종합운동장 | 10254 | 10959 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18308 | 20190131 | 2호선 | 217 | 잠실새내 | 27967 | 27937 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18309 | 20190131 | 2호선 | 216 | 잠실(송파구청) | 89355 | 85642 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18310 | 20190131 | 2호선 | 215 | 잠실나루 | 20006 | 19265 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18311 | 20190131 | 2호선 | 214 | 강변(동서울터미널) | 44302 | 44291 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18312 | 20190131 | 2호선 | 213 | 구의(광진구청) | 28067 | 26975 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18313 | 20190131 | 2호선 | 212 | 건대입구 | 44899 | 49051 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18314 | 20190131 | 2호선 | 211 | 성수 | 34567 | 37720 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18315 | 20190131 | 2호선 | 210 | 뚝섬 | 21130 | 22598 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18316 | 20190131 | 2호선 | 209 | 한양대 | 8791 | 9700 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18317 | 20190131 | 2호선 | 208 | 왕십리(성동구청) | 20764 | 17129 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18318 | 20190131 | 2호선 | 207 | 상왕십리 | 16668 | 15952 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18319 | 20190131 | 2호선 | 206 | 신당 | 16242 | 16890 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18320 | 20190131 | 2호선 | 205 | 동대문역사문화공원 | 17863 | 20145 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18321 | 20190131 | 2호선 | 204 | 을지로4가 | 13946 | 13843 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18322 | 20190131 | 2호선 | 203 | 을지로3가 | 26344 | 26216 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18323 | 20190131 | 2호선 | 202 | 을지로입구 | 55692 | 56015 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18324 | 20190131 | 2호선 | 201 | 시청 | 29981 | 29575 | 20190203 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18325 | 20190131 | 1호선 | 159 | 동묘앞 | 9483 | 9727 | 20190203 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18326 | 20190131 | 1호선 | 158 | 청량리(서울시립대입구) | 29384 | 30328 | 20190203 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18327 | 20190131 | 1호선 | 157 | 제기동 | 25142 | 26221 | 20190203 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18328 | 20190131 | 1호선 | 156 | 신설동 | 18001 | 17784 | 20190203 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18329 | 20190131 | 1호선 | 155 | 동대문 | 14563 | 15139 | 20190203 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18330 | 20190131 | 1호선 | 154 | 종로5가 | 30249 | 29703 | 20190203 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18331 | 20190131 | 1호선 | 153 | 종로3가 | 36804 | 35050 | 20190203 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18332 | 20190131 | 1호선 | 152 | 종각 | 51970 | 50080 | 20190203 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18333 | 20190131 | 1호선 | 151 | 시청 | 29059 | 29169 | 20190203 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
18334 rows × 32 columns
String¶
station_code[station_code.역명.str.contains('\(')]
역ID | 역명 | 노선명 | 노선수 | |
---|---|---|---|---|
8 | 158 | 청량리(서울시립대입구) | 1호선 | 2 |
17 | 208 | 왕십리(성동구청) | 2호선 | 3 |
22 | 213 | 구의(광진구청) | 2호선 | 1 |
23 | 214 | 강변(동서울터미널) | 2호선 | 1 |
25 | 216 | 잠실(송파구청) | 2호선 | 2 |
28 | 219 | 삼성(무역센터) | 2호선 | 1 |
32 | 223 | 교대(법원.검찰청) | 2호선 | 2 |
37 | 228 | 서울대입구(관악구청) | 2호선 | 1 |
42 | 233 | 대림(구로구청) | 2호선 | 2 |
52 | 243 | 충정로(경기대입구) | 2호선 | 2 |
59 | 250 | 용두(동대문구청) | 2호선 | 1 |
68 | 317 | 경복궁(정부서울청사) | 3호선 | 1 |
81 | 330 | 교대(법원.검찰청) | 3호선 | 2 |
82 | 331 | 남부터미널(예술의전당) | 3호선 | 1 |
83 | 332 | 양재(서초구청) | 3호선 | 1 |
99 | 414 | 수유(강북구청) | 4호선 | 1 |
100 | 415 | 미아(서울사이버대학) | 4호선 | 1 |
103 | 418 | 성신여대입구(돈암) | 4호선 | 2 |
104 | 419 | 한성대입구(삼선교) | 4호선 | 1 |
110 | 425 | 회현(남대문시장) | 4호선 | 1 |
112 | 427 | 숙대입구(갈월) | 4호선 | 1 |
115 | 430 | 이촌(국립중앙박물관) | 4호선 | 2 |
116 | 431 | 동작(현충원) | 4호선 | 2 |
117 | 432 | 총신대입구(이수) | 4호선 | 1 |
127 | 1008 | 이촌(국립중앙박물관) | 경원선 | 2 |
132 | 1013 | 왕십리(성동구청) | 경원선 | 3 |
133 | 1014 | 청량리(서울시립대입구) | 경원선 | 2 |
152 | 1202 | 상봉(시외버스터미널) | 중앙선 | 2 |
221 | 1402 | 쌍용(나사렛대) | 장항선 | 1 |
225 | 1408 | 신창(순천향대) | 장항선 | 1 |
... | ... | ... | ... | ... |
413 | 2548 | 천호(풍납토성) | 5호선 | 2 |
416 | 2551 | 굽은다리(강동구민회관앞) | 5호선 | 1 |
421 | 2556 | 올림픽공원(한국체대) | 5호선 | 2 |
433 | 2617 | 새절(신사) | 6호선 | 1 |
434 | 2618 | 증산(명지대앞) | 6호선 | 1 |
436 | 2620 | 월드컵경기장(성산) | 6호선 | 1 |
441 | 2625 | 광흥창(서강) | 6호선 | 1 |
442 | 2626 | 대흥(서강대앞) | 6호선 | 1 |
446 | 2630 | 녹사평(용산구청) | 6호선 | 1 |
456 | 2640 | 안암(고대병원앞) | 6호선 | 1 |
457 | 2641 | 고려대(종암) | 6호선 | 1 |
458 | 2642 | 월곡(동덕여대) | 6호선 | 1 |
459 | 2643 | 상월곡(한국과학기술연구원) | 6호선 | 1 |
463 | 2647 | 화랑대(서울여대입구) | 6호선 | 1 |
464 | 2648 | 봉화산(서울의료원) | 6호선 | 1 |
472 | 2718 | 공릉(서울과학기술대) | 7호선 | 1 |
476 | 2722 | 상봉(시외버스터미널) | 7호선 | 2 |
481 | 2727 | 군자(능동) | 7호선 | 2 |
482 | 2728 | 어린이대공원(세종대) | 7호선 | 1 |
494 | 2740 | 숭실대입구(살피재) | 7호선 | 1 |
500 | 2746 | 대림(구로구청) | 7호선 | 2 |
506 | 2752 | 온수(성공회대입구) | 7호선 | 2 |
517 | 2812 | 천호(풍납토성) | 8호선 | 2 |
519 | 2814 | 몽촌토성(평화의문) | 8호선 | 1 |
520 | 2815 | 잠실(송파구청) | 8호선 | 2 |
528 | 2823 | 남한산성입구(성남법원.검찰청) | 8호선 | 1 |
551 | 4119 | 흑석(중앙대입구) | 9호선 | 1 |
552 | 4120 | 동작(현충원) | 9호선 | 2 |
568 | 4136 | 올림픽공원(한국체대) | 9호선2~3단계 | 2 |
595 | 4711 | 성신여대입구(돈암) | 우이신설선 | 2 |
69 rows × 4 columns
그룹¶
data.head()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 |
4 | 20190101 | 경춘선 | 1319 | 마석 | 1772 | 1963 | 20190104 |
for key, df in data.groupby('사용일자'):
display(key, df)
break
20190101
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 |
4 | 20190101 | 경춘선 | 1319 | 마석 | 1772 | 1963 | 20190104 |
5 | 20190101 | 경춘선 | 1318 | 천마산 | 787 | 765 | 20190104 |
6 | 20190101 | 경춘선 | 1317 | 평내호평 | 2649 | 2661 | 20190104 |
7 | 20190101 | 경춘선 | 1316 | 금곡 | 734 | 726 | 20190104 |
8 | 20190101 | 경춘선 | 1315 | 사릉 | 1347 | 1534 | 20190104 |
9 | 20190101 | 경춘선 | 1314 | 퇴계원 | 1542 | 1516 | 20190104 |
10 | 20190101 | 경춘선 | 1313 | 별내 | 1321 | 1232 | 20190104 |
11 | 20190101 | 경춘선 | 1312 | 갈매 | 1068 | 954 | 20190104 |
12 | 20190101 | 경인선 | 1804 | 부천 | 24321 | 24169 | 20190104 |
13 | 20190101 | 경인선 | 1803 | 역곡 | 13653 | 14049 | 20190104 |
14 | 20190101 | 경인선 | 1802 | 오류동 | 7126 | 6603 | 20190104 |
15 | 20190101 | 경인선 | 1801 | 개봉 | 11366 | 11785 | 20190104 |
16 | 20190101 | 경의선 | 1296 | 계양 | 1 | 0 | 20190104 |
17 | 20190101 | 경의선 | 1284 | 문산 | 3860 | 4170 | 20190104 |
18 | 20190101 | 경의선 | 1283 | 파주 | 729 | 659 | 20190104 |
19 | 20190101 | 경의선 | 1282 | 월롱 | 719 | 1761 | 20190104 |
20 | 20190101 | 경의선 | 1280 | 금촌 | 4346 | 5071 | 20190104 |
21 | 20190101 | 경의선 | 1279 | 금릉 | 2311 | 2469 | 20190104 |
22 | 20190101 | 경의선 | 1278 | 운정 | 2572 | 2670 | 20190104 |
23 | 20190101 | 경의선 | 1277 | 야당 | 2377 | 2265 | 20190104 |
24 | 20190101 | 경의선 | 1276 | 탄현 | 3252 | 3199 | 20190104 |
25 | 20190101 | 경의선 | 1275 | 일산 | 3725 | 3768 | 20190104 |
26 | 20190101 | 경의선 | 1274 | 풍산 | 2476 | 2508 | 20190104 |
27 | 20190101 | 경의선 | 1273 | 백마 | 2606 | 2497 | 20190104 |
28 | 20190101 | 경의선 | 1272 | 곡산 | 215 | 209 | 20190104 |
29 | 20190101 | 경의선 | 1271 | 능곡 | 1748 | 1700 | 20190104 |
... | ... | ... | ... | ... | ... | ... | ... |
562 | 20190101 | 공항철도 1호선 | 4210 | 청라국제도시 | 2641 | 2733 | 20190104 |
563 | 20190101 | 공항철도 1호선 | 4207 | 김포공항 | 7738 | 4672 | 20190104 |
564 | 20190101 | 공항철도 1호선 | 4206 | 마곡나루 | 1172 | 1464 | 20190104 |
565 | 20190101 | 공항철도 1호선 | 4204 | 디지털미디어시티 | 3366 | 3350 | 20190104 |
566 | 20190101 | 공항철도 1호선 | 4203 | 홍대입구 | 9151 | 8059 | 20190104 |
567 | 20190101 | 공항철도 1호선 | 4202 | 공덕 | 1363 | 1761 | 20190104 |
568 | 20190101 | 공항철도 1호선 | 4201 | 서울역 | 14043 | 9955 | 20190104 |
569 | 20190101 | 경춘선 | 1329 | 춘천 | 1782 | 1395 | 20190104 |
570 | 20190101 | 경춘선 | 1328 | 남춘천 | 2149 | 2309 | 20190104 |
571 | 20190101 | 경춘선 | 1327 | 김유정 | 298 | 290 | 20190104 |
572 | 20190101 | 경춘선 | 1326 | 강촌 | 409 | 356 | 20190104 |
573 | 20190101 | 경춘선 | 1325 | 백양리 | 332 | 282 | 20190104 |
574 | 20190101 | 경춘선 | 1324 | 굴봉산 | 143 | 109 | 20190104 |
575 | 20190101 | 공항철도 1호선 | 4211 | 운서 | 4681 | 5259 | 20190104 |
576 | 20190101 | 공항철도 1호선 | 4212 | 공항화물청사 | 1256 | 2205 | 20190104 |
577 | 20190101 | 공항철도 1호선 | 4213 | 인천공항1터미널 | 16138 | 17020 | 20190104 |
578 | 20190101 | 공항철도 1호선 | 4215 | 인천공항2터미널 | 5591 | 5550 | 20190104 |
579 | 20190101 | 공항철도 1호선 | 4217 | 영종 | 1456 | 1516 | 20190104 |
580 | 20190101 | 과천선 | 1450 | 선바위 | 2761 | 2700 | 20190104 |
581 | 20190101 | 과천선 | 1451 | 경마공원 | 403 | 385 | 20190104 |
582 | 20190101 | 과천선 | 1452 | 대공원 | 1965 | 2052 | 20190104 |
583 | 20190101 | 과천선 | 1453 | 과천 | 2297 | 1961 | 20190104 |
584 | 20190101 | 중앙선 | 1212 | 양수 | 1359 | 1314 | 20190104 |
585 | 20190101 | 중앙선 | 1213 | 신원 | 191 | 102 | 20190104 |
586 | 20190101 | 중앙선 | 1214 | 국수 | 399 | 385 | 20190104 |
587 | 20190101 | 중앙선 | 1215 | 아신 | 390 | 357 | 20190104 |
588 | 20190101 | 중앙선 | 1216 | 오빈 | 178 | 156 | 20190104 |
589 | 20190101 | 중앙선 | 1217 | 양평 | 2030 | 1898 | 20190104 |
590 | 20190101 | 중앙선 | 1218 | 원덕 | 290 | 227 | 20190104 |
591 | 20190101 | 중앙선 | 1219 | 용문 | 1857 | 1643 | 20190104 |
592 rows × 7 columns
data.groupby('노선명').size()
노선명 1호선 310 2호선 1550 3호선 1049 4호선 806 5호선 1581 6호선 1164 7호선 1581 8호선 527 9호선 775 9호선2~3단계 403 경강선 341 경부선 1209 경원선 912 경의선 806 경인선 620 경춘선 589 공항철도 1호선 434 과천선 248 분당선 1071 수인선 403 안산선 403 우이신설선 403 일산선 312 장항선 186 중앙선 651 dtype: int64
data.dtypes
사용일자 int64 노선명 object 역ID int64 역명 object 승차총승객수 int64 하차총승객수 int64 등록일자 int64 dtype: object
data[['노선명']]
노선명 | |
---|---|
0 | 경춘선 |
1 | 경춘선 |
2 | 경춘선 |
3 | 경춘선 |
4 | 경춘선 |
5 | 경춘선 |
6 | 경춘선 |
7 | 경춘선 |
8 | 경춘선 |
9 | 경춘선 |
10 | 경춘선 |
11 | 경춘선 |
12 | 경인선 |
13 | 경인선 |
14 | 경인선 |
15 | 경인선 |
16 | 경의선 |
17 | 경의선 |
18 | 경의선 |
19 | 경의선 |
20 | 경의선 |
21 | 경의선 |
22 | 경의선 |
23 | 경의선 |
24 | 경의선 |
25 | 경의선 |
26 | 경의선 |
27 | 경의선 |
28 | 경의선 |
29 | 경의선 |
... | ... |
18304 | 2호선 |
18305 | 2호선 |
18306 | 2호선 |
18307 | 2호선 |
18308 | 2호선 |
18309 | 2호선 |
18310 | 2호선 |
18311 | 2호선 |
18312 | 2호선 |
18313 | 2호선 |
18314 | 2호선 |
18315 | 2호선 |
18316 | 2호선 |
18317 | 2호선 |
18318 | 2호선 |
18319 | 2호선 |
18320 | 2호선 |
18321 | 2호선 |
18322 | 2호선 |
18323 | 2호선 |
18324 | 2호선 |
18325 | 1호선 |
18326 | 1호선 |
18327 | 1호선 |
18328 | 1호선 |
18329 | 1호선 |
18330 | 1호선 |
18331 | 1호선 |
18332 | 1호선 |
18333 | 1호선 |
18334 rows × 1 columns
data.groupby('사용일자').agg(len) # size()
사용일자 20190101 592 20190102 592 20190103 593 20190104 590 20190105 589 20190106 590 20190107 592 20190108 591 20190109 591 20190110 591 20190111 592 20190112 592 20190113 592 20190114 592 20190115 591 20190116 592 20190117 591 20190118 591 20190119 591 20190120 592 20190121 593 20190122 591 20190123 590 20190124 592 20190125 589 20190126 591 20190127 592 20190128 592 20190129 593 20190130 593 20190131 591 dtype: int64
data.groupby('사용일자').agg(lambda df: df.max() - df.min())
역ID | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|
사용일자 | ||||
20190101 | 4563 | 70288 | 61834 | 0 |
20190102 | 4563 | 116549 | 116482 | 0 |
20190103 | 4563 | 122253 | 122889 | 0 |
20190104 | 4563 | 129877 | 134948 | 0 |
20190105 | 4563 | 93499 | 105472 | 0 |
20190106 | 4563 | 71524 | 69540 | 0 |
20190107 | 4563 | 121526 | 121092 | 0 |
20190108 | 4563 | 123558 | 123099 | 0 |
20190109 | 4563 | 123656 | 122365 | 0 |
20190110 | 4563 | 124859 | 124336 | 0 |
20190111 | 4563 | 132726 | 137826 | 0 |
20190112 | 4563 | 94279 | 107908 | 0 |
20190113 | 4563 | 74000 | 71712 | 0 |
20190114 | 4563 | 118983 | 119047 | 0 |
20190115 | 4563 | 122592 | 121979 | 0 |
20190116 | 4563 | 124781 | 124193 | 0 |
20190117 | 4563 | 124181 | 125391 | 0 |
20190118 | 4563 | 130863 | 136701 | 0 |
20190119 | 4563 | 93220 | 106853 | 0 |
20190120 | 4563 | 75103 | 72175 | 0 |
20190121 | 4563 | 118766 | 119423 | 0 |
20190122 | 4563 | 122091 | 121935 | 0 |
20190123 | 4563 | 124515 | 125097 | 0 |
20190124 | 4563 | 124411 | 125178 | 0 |
20190125 | 4563 | 131972 | 136614 | 0 |
20190126 | 4563 | 101249 | 114445 | 0 |
20190127 | 4563 | 79506 | 78674 | 0 |
20190128 | 4563 | 118689 | 118726 | 0 |
20190129 | 4563 | 120635 | 120632 | 0 |
20190130 | 4563 | 118277 | 118613 | 0 |
20190131 | 4563 | 116720 | 117092 | 0 |
data.groupby('노선명').agg(['mean', 'std']).승차총승객수
mean | std | |
---|---|---|
노선명 | ||
1호선 | 27714.254839 | 14872.985189 |
2호선 | 30257.951613 | 25011.375844 |
3호선 | 16306.236416 | 13897.214190 |
4호선 | 21121.942928 | 11142.280935 |
5호선 | 11566.161923 | 8244.471969 |
6호선 | 8968.502577 | 4824.543259 |
7호선 | 13568.542062 | 7473.634137 |
8호선 | 10888.738140 | 6002.298732 |
9호선 | 10686.589677 | 8853.881716 |
9호선2~3단계 | 5722.858561 | 4171.910992 |
경강선 | 2302.199413 | 1703.859833 |
경부선 | 11644.869313 | 11348.782076 |
경원선 | 6889.365132 | 4951.897655 |
경의선 | 3793.387097 | 2568.209279 |
경인선 | 15491.914516 | 11394.502010 |
경춘선 | 1816.789474 | 1486.308924 |
공항철도 1호선 | 7902.847926 | 4492.030156 |
과천선 | 13365.846774 | 10016.050405 |
분당선 | 10456.872082 | 7520.537228 |
수인선 | 3233.878412 | 1798.083037 |
안산선 | 9277.406948 | 6038.748526 |
우이신설선 | 3135.590571 | 1403.149495 |
일산선 | 10848.756410 | 5188.597498 |
장항선 | 2203.881720 | 1475.389912 |
중앙선 | 4300.321045 | 6195.087971 |
data.groupby('사용일자').apply(lambda df: df.sort_values('승차총승객수', ascending=False).head())
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | ||
---|---|---|---|---|---|---|---|---|
사용일자 | ||||||||
20190101 | 394 | 20190101 | 2호선 | 239 | 홍대입구 | 70289 | 61834 | 20190104 |
416 | 20190101 | 2호선 | 216 | 잠실(송파구청) | 48502 | 42899 | 20190104 | |
362 | 20190101 | 3호선 | 329 | 고속터미널 | 44564 | 36579 | 20190104 | |
442 | 20190101 | 1호선 | 150 | 서울역 | 39420 | 31121 | 20190104 | |
410 | 20190101 | 2호선 | 222 | 강남 | 38729 | 36544 | 20190104 | |
20190102 | 612 | 20190102 | 2호선 | 222 | 강남 | 116550 | 116482 | 20190105 |
606 | 20190102 | 2호선 | 216 | 잠실(송파구청) | 85771 | 82923 | 20190105 | |
638 | 20190102 | 2호선 | 239 | 홍대입구 | 77440 | 81728 | 20190105 | |
629 | 20190102 | 2호선 | 230 | 신림 | 73692 | 73265 | 20190105 | |
631 | 20190102 | 2호선 | 232 | 구로디지털단지 | 71046 | 70876 | 20190105 | |
20190103 | 1740 | 20190103 | 2호선 | 222 | 강남 | 122254 | 122889 | 20190106 |
1746 | 20190103 | 2호선 | 216 | 잠실(송파구청) | 90798 | 87512 | 20190106 | |
1723 | 20190103 | 2호선 | 239 | 홍대입구 | 78897 | 83287 | 20190106 | |
1732 | 20190103 | 2호선 | 230 | 신림 | 75650 | 74677 | 20190106 | |
1730 | 20190103 | 2호선 | 232 | 구로디지털단지 | 72793 | 73191 | 20190106 | |
20190104 | 1844 | 20190104 | 2호선 | 222 | 강남 | 129878 | 134948 | 20190107 |
1799 | 20190104 | 2호선 | 216 | 잠실(송파구청) | 95791 | 92454 | 20190107 | |
1861 | 20190104 | 2호선 | 239 | 홍대입구 | 87359 | 99468 | 20190107 | |
1852 | 20190104 | 2호선 | 230 | 신림 | 78947 | 77948 | 20190107 | |
1854 | 20190104 | 2호선 | 232 | 구로디지털단지 | 75632 | 75535 | 20190107 | |
20190105 | 2434 | 20190105 | 2호선 | 239 | 홍대입구 | 93500 | 105472 | 20190108 |
2417 | 20190105 | 2호선 | 222 | 강남 | 90030 | 95814 | 20190108 | |
2411 | 20190105 | 2호선 | 216 | 잠실(송파구청) | 82719 | 77581 | 20190108 | |
2465 | 20190105 | 3호선 | 329 | 고속터미널 | 73516 | 69224 | 20190108 | |
2425 | 20190105 | 2호선 | 230 | 신림 | 62877 | 61460 | 20190108 | |
20190106 | 3505 | 20190106 | 2호선 | 239 | 홍대입구 | 71525 | 69540 | 20190109 |
3528 | 20190106 | 2호선 | 216 | 잠실(송파구청) | 58948 | 54615 | 20190109 | |
3474 | 20190106 | 3호선 | 329 | 고속터미널 | 56373 | 53505 | 20190109 | |
3522 | 20190106 | 2호선 | 222 | 강남 | 52313 | 51169 | 20190109 | |
3514 | 20190106 | 2호선 | 230 | 신림 | 46899 | 46368 | 20190109 | |
... | ... | ... | ... | ... | ... | ... | ... | ... |
20190126 | 15322 | 20190126 | 2호선 | 239 | 홍대입구 | 101250 | 114445 | 20190129 |
15339 | 20190126 | 2호선 | 222 | 강남 | 94215 | 100006 | 20190129 | |
15345 | 20190126 | 2호선 | 216 | 잠실(송파구청) | 85821 | 80606 | 20190129 | |
15290 | 20190126 | 3호선 | 329 | 고속터미널 | 76622 | 72338 | 20190129 | |
15331 | 20190126 | 2호선 | 230 | 신림 | 65542 | 63867 | 20190129 | |
20190127 | 15418 | 20190127 | 2호선 | 239 | 홍대입구 | 79507 | 78674 | 20190130 |
15440 | 20190127 | 2호선 | 216 | 잠실(송파구청) | 62329 | 57153 | 20190130 | |
15386 | 20190127 | 3호선 | 329 | 고속터미널 | 56866 | 55929 | 20190130 | |
15434 | 20190127 | 2호선 | 222 | 강남 | 55479 | 54361 | 20190130 | |
15426 | 20190127 | 2호선 | 230 | 신림 | 48952 | 47418 | 20190130 | |
20190128 | 16015 | 20190128 | 2호선 | 222 | 강남 | 118690 | 118726 | 20190131 |
16009 | 20190128 | 2호선 | 216 | 잠실(송파구청) | 86842 | 84401 | 20190131 | |
16032 | 20190128 | 2호선 | 239 | 홍대입구 | 77425 | 79828 | 20190131 | |
16023 | 20190128 | 2호선 | 230 | 신림 | 75753 | 73885 | 20190131 | |
16025 | 20190128 | 2호선 | 232 | 구로디지털단지 | 73175 | 73065 | 20190131 | |
20190129 | 17012 | 20190129 | 2호선 | 222 | 강남 | 120636 | 120632 | 20190201 |
17006 | 20190129 | 2호선 | 216 | 잠실(송파구청) | 90942 | 87560 | 20190201 | |
17020 | 20190129 | 2호선 | 230 | 신림 | 76392 | 74743 | 20190201 | |
17029 | 20190129 | 2호선 | 239 | 홍대입구 | 76168 | 79589 | 20190201 | |
17022 | 20190129 | 2호선 | 232 | 구로디지털단지 | 73940 | 74328 | 20190201 | |
20190130 | 17713 | 20190130 | 2호선 | 222 | 강남 | 118278 | 118613 | 20190202 |
17719 | 20190130 | 2호선 | 216 | 잠실(송파구청) | 90059 | 87495 | 20190202 | |
17705 | 20190130 | 2호선 | 230 | 신림 | 76938 | 75507 | 20190202 | |
17696 | 20190130 | 2호선 | 239 | 홍대입구 | 76176 | 79779 | 20190202 | |
17703 | 20190130 | 2호선 | 232 | 구로디지털단지 | 74136 | 74276 | 20190202 | |
20190131 | 18303 | 20190131 | 2호선 | 222 | 강남 | 116722 | 117092 | 20190203 |
18309 | 20190131 | 2호선 | 216 | 잠실(송파구청) | 89355 | 85642 | 20190203 | |
18295 | 20190131 | 2호선 | 230 | 신림 | 76306 | 74115 | 20190203 | |
18265 | 20190131 | 2호선 | 239 | 홍대입구 | 75355 | 78617 | 20190203 | |
18272 | 20190131 | 2호선 | 232 | 구로디지털단지 | 73933 | 73734 | 20190203 |
155 rows × 7 columns
data.groupby('사용일자', group_keys=False).apply(lambda df: df.sort_values('승차총승객수', ascending=False).head())
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
394 | 20190101 | 2호선 | 239 | 홍대입구 | 70289 | 61834 | 20190104 |
416 | 20190101 | 2호선 | 216 | 잠실(송파구청) | 48502 | 42899 | 20190104 |
362 | 20190101 | 3호선 | 329 | 고속터미널 | 44564 | 36579 | 20190104 |
442 | 20190101 | 1호선 | 150 | 서울역 | 39420 | 31121 | 20190104 |
410 | 20190101 | 2호선 | 222 | 강남 | 38729 | 36544 | 20190104 |
612 | 20190102 | 2호선 | 222 | 강남 | 116550 | 116482 | 20190105 |
606 | 20190102 | 2호선 | 216 | 잠실(송파구청) | 85771 | 82923 | 20190105 |
638 | 20190102 | 2호선 | 239 | 홍대입구 | 77440 | 81728 | 20190105 |
629 | 20190102 | 2호선 | 230 | 신림 | 73692 | 73265 | 20190105 |
631 | 20190102 | 2호선 | 232 | 구로디지털단지 | 71046 | 70876 | 20190105 |
1740 | 20190103 | 2호선 | 222 | 강남 | 122254 | 122889 | 20190106 |
1746 | 20190103 | 2호선 | 216 | 잠실(송파구청) | 90798 | 87512 | 20190106 |
1723 | 20190103 | 2호선 | 239 | 홍대입구 | 78897 | 83287 | 20190106 |
1732 | 20190103 | 2호선 | 230 | 신림 | 75650 | 74677 | 20190106 |
1730 | 20190103 | 2호선 | 232 | 구로디지털단지 | 72793 | 73191 | 20190106 |
1844 | 20190104 | 2호선 | 222 | 강남 | 129878 | 134948 | 20190107 |
1799 | 20190104 | 2호선 | 216 | 잠실(송파구청) | 95791 | 92454 | 20190107 |
1861 | 20190104 | 2호선 | 239 | 홍대입구 | 87359 | 99468 | 20190107 |
1852 | 20190104 | 2호선 | 230 | 신림 | 78947 | 77948 | 20190107 |
1854 | 20190104 | 2호선 | 232 | 구로디지털단지 | 75632 | 75535 | 20190107 |
2434 | 20190105 | 2호선 | 239 | 홍대입구 | 93500 | 105472 | 20190108 |
2417 | 20190105 | 2호선 | 222 | 강남 | 90030 | 95814 | 20190108 |
2411 | 20190105 | 2호선 | 216 | 잠실(송파구청) | 82719 | 77581 | 20190108 |
2465 | 20190105 | 3호선 | 329 | 고속터미널 | 73516 | 69224 | 20190108 |
2425 | 20190105 | 2호선 | 230 | 신림 | 62877 | 61460 | 20190108 |
3505 | 20190106 | 2호선 | 239 | 홍대입구 | 71525 | 69540 | 20190109 |
3528 | 20190106 | 2호선 | 216 | 잠실(송파구청) | 58948 | 54615 | 20190109 |
3474 | 20190106 | 3호선 | 329 | 고속터미널 | 56373 | 53505 | 20190109 |
3522 | 20190106 | 2호선 | 222 | 강남 | 52313 | 51169 | 20190109 |
3514 | 20190106 | 2호선 | 230 | 신림 | 46899 | 46368 | 20190109 |
... | ... | ... | ... | ... | ... | ... | ... |
15322 | 20190126 | 2호선 | 239 | 홍대입구 | 101250 | 114445 | 20190129 |
15339 | 20190126 | 2호선 | 222 | 강남 | 94215 | 100006 | 20190129 |
15345 | 20190126 | 2호선 | 216 | 잠실(송파구청) | 85821 | 80606 | 20190129 |
15290 | 20190126 | 3호선 | 329 | 고속터미널 | 76622 | 72338 | 20190129 |
15331 | 20190126 | 2호선 | 230 | 신림 | 65542 | 63867 | 20190129 |
15418 | 20190127 | 2호선 | 239 | 홍대입구 | 79507 | 78674 | 20190130 |
15440 | 20190127 | 2호선 | 216 | 잠실(송파구청) | 62329 | 57153 | 20190130 |
15386 | 20190127 | 3호선 | 329 | 고속터미널 | 56866 | 55929 | 20190130 |
15434 | 20190127 | 2호선 | 222 | 강남 | 55479 | 54361 | 20190130 |
15426 | 20190127 | 2호선 | 230 | 신림 | 48952 | 47418 | 20190130 |
16015 | 20190128 | 2호선 | 222 | 강남 | 118690 | 118726 | 20190131 |
16009 | 20190128 | 2호선 | 216 | 잠실(송파구청) | 86842 | 84401 | 20190131 |
16032 | 20190128 | 2호선 | 239 | 홍대입구 | 77425 | 79828 | 20190131 |
16023 | 20190128 | 2호선 | 230 | 신림 | 75753 | 73885 | 20190131 |
16025 | 20190128 | 2호선 | 232 | 구로디지털단지 | 73175 | 73065 | 20190131 |
17012 | 20190129 | 2호선 | 222 | 강남 | 120636 | 120632 | 20190201 |
17006 | 20190129 | 2호선 | 216 | 잠실(송파구청) | 90942 | 87560 | 20190201 |
17020 | 20190129 | 2호선 | 230 | 신림 | 76392 | 74743 | 20190201 |
17029 | 20190129 | 2호선 | 239 | 홍대입구 | 76168 | 79589 | 20190201 |
17022 | 20190129 | 2호선 | 232 | 구로디지털단지 | 73940 | 74328 | 20190201 |
17713 | 20190130 | 2호선 | 222 | 강남 | 118278 | 118613 | 20190202 |
17719 | 20190130 | 2호선 | 216 | 잠실(송파구청) | 90059 | 87495 | 20190202 |
17705 | 20190130 | 2호선 | 230 | 신림 | 76938 | 75507 | 20190202 |
17696 | 20190130 | 2호선 | 239 | 홍대입구 | 76176 | 79779 | 20190202 |
17703 | 20190130 | 2호선 | 232 | 구로디지털단지 | 74136 | 74276 | 20190202 |
18303 | 20190131 | 2호선 | 222 | 강남 | 116722 | 117092 | 20190203 |
18309 | 20190131 | 2호선 | 216 | 잠실(송파구청) | 89355 | 85642 | 20190203 |
18295 | 20190131 | 2호선 | 230 | 신림 | 76306 | 74115 | 20190203 |
18265 | 20190131 | 2호선 | 239 | 홍대입구 | 75355 | 78617 | 20190203 |
18272 | 20190131 | 2호선 | 232 | 구로디지털단지 | 73933 | 73734 | 20190203 |
155 rows × 7 columns
# dt = pd.to_datetime(data2.사용일자, format='%Y%m%d')
# data2['year'] = dt.dt.year
# data2['month'] = dt.dt.month
# data2['day'] = dt.dt.day
# wday={0:'월', 1:'화', 2:'수', 3:'목', 4:'금', 5:'토', 6:'일'}
# data2['wday'] = dt.dt.dayofweek.map(wday)
dt = pd.to_datetime(data.사용일자, format='%Y%m%d')
wday={0:'월', 1:'화', 2:'수', 3:'목', 4:'금', 5:'토', 6:'일'}
data.groupby(['노선명',dt.dt.dayofweek]).mean()[['승차총승객수']]
승차총승객수 | ||
---|---|---|
노선명 | 사용일자 | |
1호선 | 0 | 29270.025000 |
1 | 27067.020000 | |
2 | 29584.940000 | |
3 | 30320.360000 | |
4 | 32239.500000 | |
5 | 26339.675000 | |
6 | 18220.875000 | |
2호선 | 0 | 32991.040000 |
1 | 29684.968000 | |
2 | 33618.900000 | |
3 | 34068.988000 | |
4 | 35683.450000 | |
5 | 25888.060000 | |
6 | 18220.505000 | |
3호선 | 0 | 17597.485294 |
1 | 15775.441176 | |
2 | 17949.165680 | |
3 | 18389.190476 | |
4 | 19358.948148 | |
5 | 14398.610294 | |
6 | 9894.051852 | |
4호선 | 0 | 22589.942308 |
1 | 20666.061538 | |
2 | 23077.200000 | |
3 | 23368.607692 | |
4 | 24370.278846 | |
5 | 19093.692308 | |
6 | 13751.307692 | |
5호선 | 0 | 12963.715686 |
1 | 11550.909804 | |
... | ... | ... |
안산선 | 5 | 8618.153846 |
6 | 6723.096154 | |
우이신설선 | 0 | 3368.307692 |
1 | 3092.800000 | |
2 | 3392.200000 | |
3 | 3445.507692 | |
4 | 3532.365385 | |
5 | 2771.038462 | |
6 | 2215.980769 | |
일산선 | 0 | 11637.902439 |
1 | 10644.120000 | |
2 | 11831.509804 | |
3 | 12087.260000 | |
4 | 12528.100000 | |
5 | 9600.800000 | |
6 | 7063.150000 | |
장항선 | 0 | 2200.041667 |
1 | 2094.700000 | |
2 | 2145.900000 | |
3 | 2200.100000 | |
4 | 2489.083333 | |
5 | 2428.083333 | |
6 | 1912.000000 | |
중앙선 | 0 | 4583.226190 |
1 | 4154.514286 | |
2 | 4631.742857 | |
3 | 4676.104762 | |
4 | 4867.666667 | |
5 | 4022.630952 | |
6 | 3026.011905 |
175 rows × 1 columns
dt = pd.to_datetime(data.사용일자, format='%Y%m%d')
wday={0:'월', 1:'화', 2:'수', 3:'목', 4:'금', 5:'토', 6:'일'}
data2 = data.groupby(['노선명',dt.dt.dayofweek]).mean().승차총승객수.unstack()
import matplotlib.font_manager as fm
prop=fm.FontProperties(fname='C:/Windows/Fonts/gulim.ttc')
plt.figure(figsize=[12,10])
plt.plot(data2.T)
plt.legend(data2.index.tolist(), prop=prop)
<matplotlib.legend.Legend at 0x2367bf78860>
data.head()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 |
4 | 20190101 | 경춘선 | 1319 | 마석 | 1772 | 1963 | 20190104 |
data.pivot_table(values=['승차총승객수','하차총승객수'], index='사용일자', columns='노선명',
aggfunc='mean', margins=True)
승차총승객수 | ... | 하차총승객수 | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
노선명 | 1호선 | 2호선 | 3호선 | 4호선 | 5호선 | 6호선 | 7호선 | 8호선 | 9호선 | 9호선2~3단계 | ... | 공항철도 1호선 | 과천선 | 분당선 | 수인선 | 안산선 | 우이신설선 | 일산선 | 장항선 | 중앙선 | All |
사용일자 | |||||||||||||||||||||
20190101 | 15295.500000 | 13624.080000 | 7108.411765 | 10613.538462 | 4885.941176 | 4410.684211 | 5844.882353 | 5008.235294 | 4495.320000 | 2410.000000 | ... | 5254.785714 | 4758.750000 | 4493.647059 | 1829.461538 | 5205.769231 | 1689.923077 | 5067.300000 | 1621.833333 | 2241.952381 | 5732.271959 |
20190102 | 28386.100000 | 32342.000000 | 17164.264706 | 22394.730769 | 12758.666667 | 9424.236842 | 14909.098039 | 11785.882353 | 11519.440000 | 5919.692308 | ... | 7843.428571 | 13594.500000 | 11468.685714 | 3426.846154 | 9527.230769 | 3219.923077 | 11073.700000 | 2057.166667 | 4315.428571 | 12824.888514 |
20190103 | 29592.500000 | 33702.840000 | 17881.382353 | 23318.000000 | 13137.647059 | 10095.918919 | 15274.019608 | 12094.882353 | 11912.560000 | 6211.769231 | ... | 7727.714286 | 13702.125000 | 11887.857143 | 3530.846154 | 9752.307692 | 3308.769231 | 11571.300000 | 2076.166667 | 4507.952381 | 13225.161889 |
20190104 | 31664.800000 | 35276.840000 | 19443.151515 | 24231.153846 | 13534.058824 | 10527.513514 | 15751.156863 | 12827.000000 | 12538.680000 | 6425.769231 | ... | 8073.142857 | 15190.750000 | 12819.657143 | 3685.615385 | 10197.692308 | 3343.000000 | 12000.000000 | 2493.833333 | 4649.904762 | 13964.298305 |
20190105 | 25247.300000 | 25251.020000 | 13766.147059 | 18629.576923 | 8932.529412 | 7642.648649 | 10723.843137 | 8723.294118 | 8180.320000 | 5057.384615 | ... | 6494.500000 | 11572.375000 | 8824.176471 | 2803.153846 | 8250.384615 | 2543.000000 | 9001.400000 | 2177.333333 | 3957.714286 | 10237.760611 |
20190106 | 17574.400000 | 17694.240000 | 9817.727273 | 13388.692308 | 6294.450980 | 5461.552632 | 7644.509804 | 6364.588235 | 5867.960000 | 3542.384615 | ... | 5437.071429 | 9585.375000 | 6283.000000 | 2240.769231 | 6396.230769 | 2160.615385 | 6804.500000 | 1768.833333 | 2860.142857 | 7424.657627 |
20190107 | 29460.100000 | 33224.280000 | 17652.705882 | 22749.500000 | 13041.627451 | 9655.315789 | 15350.176471 | 12094.764706 | 11979.000000 | 6192.307692 | ... | 7670.857143 | 13419.125000 | 11801.685714 | 3559.076923 | 9803.538462 | 3315.461538 | 11576.600000 | 2132.166667 | 4451.047619 | 13166.797297 |
20190108 | 29955.200000 | 33742.720000 | 17991.588235 | 23310.307692 | 13252.882353 | 10106.756757 | 15371.843137 | 12274.882353 | 12181.400000 | 6367.538462 | ... | 7665.785714 | 13794.875000 | 11945.685714 | 3536.153846 | 9816.769231 | 3404.615385 | 11474.000000 | 2053.833333 | 4550.380952 | 13333.705584 |
20190109 | 28726.100000 | 33413.940000 | 18313.939394 | 22785.269231 | 13081.156863 | 9701.710526 | 15279.411765 | 12249.000000 | 12007.240000 | 6268.692308 | ... | 7422.500000 | 14071.625000 | 12505.147059 | 3492.692308 | 9698.615385 | 3262.692308 | 10241.272727 | 2182.166667 | 4368.142857 | 13169.321489 |
20190110 | 30103.200000 | 34152.460000 | 18661.393939 | 23337.115385 | 13292.039216 | 10153.648649 | 15451.725490 | 12301.882353 | 12195.640000 | 6355.307692 | ... | 7581.642857 | 14060.625000 | 12443.794118 | 3539.538462 | 9963.076923 | 3316.769231 | 11448.500000 | 2065.666667 | 4599.619048 | 13441.384095 |
20190111 | 32108.400000 | 35644.200000 | 19143.088235 | 24303.730769 | 13584.215686 | 10570.783784 | 15870.549020 | 12731.411765 | 12789.440000 | 6677.000000 | ... | 8074.000000 | 15313.000000 | 13071.352941 | 3771.461538 | 10507.307692 | 3382.615385 | 12031.600000 | 2399.333333 | 4672.190476 | 14057.800676 |
20190112 | 26814.400000 | 26124.620000 | 14537.470588 | 19352.884615 | 9114.764706 | 7729.815789 | 11068.254902 | 8818.882353 | 8434.600000 | 4586.846154 | ... | 6684.857143 | 11726.625000 | 9075.529412 | 2974.538462 | 8636.000000 | 2645.538462 | 9331.800000 | 2325.166667 | 3847.047619 | 10557.322635 |
20190113 | 17741.000000 | 18251.760000 | 9758.941176 | 13693.846154 | 6256.019608 | 5505.631579 | 7859.431373 | 6386.176471 | 6032.160000 | 3694.000000 | ... | 5491.928571 | 9617.250000 | 6153.085714 | 2322.846154 | 6737.230769 | 2033.692308 | 6841.800000 | 1896.500000 | 3001.571429 | 7553.091216 |
20190114 | 28666.500000 | 32552.700000 | 17408.911765 | 22222.769231 | 12824.117647 | 9455.421053 | 15112.313725 | 12082.352941 | 11763.320000 | 6131.615385 | ... | 7737.500000 | 13228.375000 | 11741.428571 | 3370.076923 | 9634.769231 | 3213.000000 | 11070.700000 | 2313.000000 | 4319.571429 | 12922.288851 |
20190115 | 29400.600000 | 33491.860000 | 17749.470588 | 22892.115385 | 13116.607843 | 9998.216216 | 15267.803922 | 12101.705882 | 12055.680000 | 6331.769231 | ... | 7629.714286 | 13511.875000 | 11733.228571 | 3401.076923 | 9665.307692 | 3286.923077 | 11504.800000 | 1992.166667 | 4458.047619 | 13192.695431 |
20190116 | 29605.600000 | 33897.380000 | 17923.411765 | 23047.461538 | 13198.431373 | 10118.000000 | 15289.607843 | 12198.294118 | 12139.200000 | 6331.769231 | ... | 7620.571429 | 14287.750000 | 12000.514286 | 3458.000000 | 9710.384615 | 3286.846154 | 11722.800000 | 1993.666667 | 4471.857143 | 13278.153716 |
20190117 | 30716.800000 | 34320.440000 | 18512.323529 | 23484.269231 | 13392.078431 | 10021.552632 | 15477.058824 | 12339.352941 | 12256.520000 | 6527.769231 | ... | 7842.642857 | 14140.125000 | 12097.057143 | 3584.384615 | 9906.615385 | 3363.769231 | 11782.400000 | 2101.000000 | 4522.238095 | 13542.375635 |
20190118 | 32380.400000 | 35586.860000 | 19395.941176 | 24344.269231 | 13609.235294 | 10662.459459 | 15855.921569 | 12686.411765 | 12829.920000 | 6644.076923 | ... | 8253.000000 | 15386.750000 | 13012.411765 | 3681.461538 | 10482.230769 | 3366.307692 | 12019.400000 | 2336.500000 | 4713.142857 | 14096.795262 |
20190119 | 26445.300000 | 25834.220000 | 14579.382353 | 18944.307692 | 9155.882353 | 7646.894737 | 10985.784314 | 9124.823529 | 8533.360000 | 4743.615385 | ... | 6707.928571 | 11581.500000 | 9154.257143 | 3005.615385 | 8693.923077 | 2533.923077 | 9146.300000 | 2645.166667 | 3877.619048 | 10532.864636 |
20190120 | 18177.700000 | 18204.880000 | 10024.588235 | 13815.115385 | 6369.862745 | 5679.105263 | 7980.666667 | 6499.882353 | 6037.920000 | 2968.384615 | ... | 5557.500000 | 9882.875000 | 6438.794118 | 2254.615385 | 6815.692308 | 2095.230769 | 6812.100000 | 1818.333333 | 3111.047619 | 7599.599662 |
20190121 | 29176.800000 | 32911.780000 | 17544.529412 | 22469.769231 | 12898.549020 | 9456.947368 | 15122.705882 | 11942.882353 | 11870.080000 | 6415.846154 | ... | 7733.571429 | 13210.625000 | 12008.176471 | 3434.615385 | 9734.000000 | 3305.230769 | 10385.818182 | 2112.833333 | 4351.904762 | 12998.018550 |
20190122 | 30385.100000 | 33846.560000 | 17992.058824 | 23197.115385 | 13262.921569 | 10083.351351 | 15413.686275 | 12179.058824 | 12173.040000 | 6391.076923 | ... | 7797.071429 | 13821.250000 | 11930.571429 | 3560.692308 | 9865.615385 | 3391.153846 | 11531.200000 | 2002.833333 | 4466.523810 | 13362.830795 |
20190123 | 30479.800000 | 34518.600000 | 18108.676471 | 23512.730769 | 13388.117647 | 10191.567568 | 15538.431373 | 12337.235294 | 12350.240000 | 6672.615385 | ... | 7906.000000 | 14535.125000 | 12466.617647 | 3616.846154 | 9990.076923 | 3387.538462 | 11770.400000 | 2043.166667 | 4641.619048 | 13565.737288 |
20190124 | 30946.700000 | 34648.280000 | 18948.727273 | 23583.461538 | 13410.764706 | 9925.052632 | 15492.117647 | 12598.176471 | 12280.800000 | 6620.615385 | ... | 7908.642857 | 14047.375000 | 12502.142857 | 3540.923077 | 9794.000000 | 3369.769231 | 11654.600000 | 2354.500000 | 4554.476190 | 13600.606419 |
20190125 | 32804.400000 | 36225.900000 | 19456.088235 | 24601.961538 | 13724.921569 | 10660.756757 | 15974.882353 | 12842.058824 | 12986.080000 | 6937.615385 | ... | 8310.285714 | 15365.500000 | 13150.941176 | 3657.923077 | 10265.615385 | 3431.307692 | 12112.400000 | 2199.166667 | 4789.714286 | 14274.300509 |
20190126 | 26851.700000 | 26342.380000 | 14711.441176 | 19448.000000 | 9294.705882 | 7963.447368 | 11107.058824 | 9019.941176 | 8676.720000 | 5219.846154 | ... | 6878.928571 | 11856.750000 | 9211.529412 | 2900.769231 | 8399.076923 | 2597.000000 | 9650.500000 | 2168.166667 | 3954.904762 | 10689.658206 |
20190127 | 19390.400000 | 18731.140000 | 9972.705882 | 14107.576923 | 6706.196078 | 5811.027027 | 7918.215686 | 6544.823529 | 6089.440000 | 3911.923077 | ... | 5774.142857 | 10048.250000 | 6278.485714 | 2318.000000 | 6691.461538 | 2067.692308 | 7139.200000 | 1848.833333 | 2986.761905 | 7781.349662 |
20190128 | 29776.700000 | 33275.400000 | 17783.794118 | 22917.730769 | 13090.568627 | 9629.657895 | 15320.588235 | 12150.705882 | 12113.040000 | 6298.230769 | ... | 8131.714286 | 13402.750000 | 12168.852941 | 3410.461538 | 9693.153846 | 3376.692308 | 11570.900000 | 2120.000000 | 4561.238095 | 13203.326014 |
20190129 | 30298.700000 | 33719.620000 | 18035.676471 | 23317.230769 | 13236.196078 | 9839.657895 | 15432.588235 | 12560.000000 | 12302.200000 | 6501.000000 | ... | 7892.857143 | 13809.875000 | 12331.885714 | 3518.461538 | 9709.000000 | 3403.230769 | 11559.300000 | 2363.333333 | 4487.761905 | 13355.789207 |
20190130 | 30727.100000 | 33922.580000 | 18246.264706 | 23645.807692 | 13465.254902 | 10041.131579 | 15561.529412 | 12385.705882 | 12393.680000 | 6511.846154 | ... | 7820.714286 | 14624.250000 | 12146.400000 | 3577.615385 | 9898.307692 | 3423.153846 | 11940.900000 | 2080.500000 | 4657.476190 | 13506.682968 |
20190131 | 30242.600000 | 33520.920000 | 17966.588235 | 23120.192308 | 13240.607843 | 10148.162162 | 15374.941176 | 12296.588235 | 12299.280000 | 6540.307692 | ... | 7964.357143 | 13890.500000 | 11941.828571 | 3373.923077 | 9619.769231 | 3392.538462 | 11456.300000 | 2009.833333 | 4435.619048 | 13317.610829 |
All | 27714.254839 | 30257.951613 | 16306.236416 | 21121.942928 | 11566.161923 | 8968.502577 | 13568.542062 | 10888.738140 | 10686.589677 | 5722.858561 | ... | 7319.011521 | 12936.725806 | 10815.070962 | 3238.014888 | 9131.004963 | 3029.610422 | 10428.092949 | 2121.064516 | 4173.697389 | 12048.564143 |
32 rows × 52 columns
타임시리즈¶
from datetime import datetime
t = datetime.strptime('20190301','%Y%m%d')
t
datetime.datetime(2019, 3, 1, 0, 0)
t.strftime('%Y-%m(%b, %B)-%d %w(%a, %A) %p, %x')
'2019-03(Mar, March)-01 5(Fri, Friday) AM, 03/01/19'
di = pd.to_datetime(['2019/3/1', '2019/3/2', '2019/3/3'])
type(di)
pandas.core.indexes.datetimes.DatetimeIndex
t = pd.Series(di)
t
0 2019-03-01 1 2019-03-02 2 2019-03-03 dtype: datetime64[ns]
t[0]
Timestamp('2019-03-01 00:00:00')
pd.date_range('2019/1/1','2019/1/31')
DatetimeIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04', '2019-01-05', '2019-01-06', '2019-01-07', '2019-01-08', '2019-01-09', '2019-01-10', '2019-01-11', '2019-01-12', '2019-01-13', '2019-01-14', '2019-01-15', '2019-01-16', '2019-01-17', '2019-01-18', '2019-01-19', '2019-01-20', '2019-01-21', '2019-01-22', '2019-01-23', '2019-01-24', '2019-01-25', '2019-01-26', '2019-01-27', '2019-01-28', '2019-01-29', '2019-01-30', '2019-01-31'], dtype='datetime64[ns]', freq='D')
help(pd.to_datetime)
Help on function to_datetime in module pandas.core.tools.datetimes: to_datetime(arg, errors='raise', dayfirst=False, yearfirst=False, utc=None, box=True, format=None, exact=True, unit=None, infer_datetime_format=False, origin='unix', cache=False) Convert argument to datetime. Parameters ---------- arg : integer, float, string, datetime, list, tuple, 1-d array, Series .. versionadded:: 0.18.1 or DataFrame/dict-like errors : {'ignore', 'raise', 'coerce'}, default 'raise' - If 'raise', then invalid parsing will raise an exception - If 'coerce', then invalid parsing will be set as NaT - If 'ignore', then invalid parsing will return the input dayfirst : boolean, default False Specify a date parse order if `arg` is str or its list-likes. If True, parses dates with the day first, eg 10/11/12 is parsed as 2012-11-10. Warning: dayfirst=True is not strict, but will prefer to parse with day first (this is a known bug, based on dateutil behavior). yearfirst : boolean, default False Specify a date parse order if `arg` is str or its list-likes. - If True parses dates with the year first, eg 10/11/12 is parsed as 2010-11-12. - If both dayfirst and yearfirst are True, yearfirst is preceded (same as dateutil). Warning: yearfirst=True is not strict, but will prefer to parse with year first (this is a known bug, based on dateutil beahavior). .. versionadded:: 0.16.1 utc : boolean, default None Return UTC DatetimeIndex if True (converting any tz-aware datetime.datetime objects as well). box : boolean, default True - If True returns a DatetimeIndex - If False returns ndarray of values. format : string, default None strftime to parse time, eg "%d/%m/%Y", note that "%f" will parse all the way up to nanoseconds. exact : boolean, True by default - If True, require an exact format match. - If False, allow the format to match anywhere in the target string. unit : string, default 'ns' unit of the arg (D,s,ms,us,ns) denote the unit, which is an integer or float number. This will be based off the origin. Example, with unit='ms' and origin='unix' (the default), this would calculate the number of milliseconds to the unix epoch start. infer_datetime_format : boolean, default False If True and no `format` is given, attempt to infer the format of the datetime strings, and if it can be inferred, switch to a faster method of parsing them. In some cases this can increase the parsing speed by ~5-10x. origin : scalar, default is 'unix' Define the reference date. The numeric values would be parsed as number of units (defined by `unit`) since this reference date. - If 'unix' (or POSIX) time; origin is set to 1970-01-01. - If 'julian', unit must be 'D', and origin is set to beginning of Julian Calendar. Julian day number 0 is assigned to the day starting at noon on January 1, 4713 BC. - If Timestamp convertible, origin is set to Timestamp identified by origin. .. versionadded:: 0.20.0 cache : boolean, default False If True, use a cache of unique, converted dates to apply the datetime conversion. May produce sigificant speed-up when parsing duplicate date strings, especially ones with timezone offsets. .. versionadded:: 0.23.0 Returns ------- ret : datetime if parsing succeeded. Return type depends on input: - list-like: DatetimeIndex - Series: Series of datetime64 dtype - scalar: Timestamp In case when it is not possible to return designated types (e.g. when any element of input is before Timestamp.min or after Timestamp.max) return will have datetime.datetime type (or corresponding array/Series). Examples -------- Assembling a datetime from multiple columns of a DataFrame. The keys can be common abbreviations like ['year', 'month', 'day', 'minute', 'second', 'ms', 'us', 'ns']) or plurals of the same >>> df = pd.DataFrame({'year': [2015, 2016], 'month': [2, 3], 'day': [4, 5]}) >>> pd.to_datetime(df) 0 2015-02-04 1 2016-03-05 dtype: datetime64[ns] If a date does not meet the `timestamp limitations <http://pandas.pydata.org/pandas-docs/stable/timeseries.html #timeseries-timestamp-limits>`_, passing errors='ignore' will return the original input instead of raising any exception. Passing errors='coerce' will force an out-of-bounds date to NaT, in addition to forcing non-dates (or non-parseable dates) to NaT. >>> pd.to_datetime('13000101', format='%Y%m%d', errors='ignore') datetime.datetime(1300, 1, 1, 0, 0) >>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce') NaT Passing infer_datetime_format=True can often-times speedup a parsing if its not an ISO8601 format exactly, but in a regular format. >>> s = pd.Series(['3/11/2000', '3/12/2000', '3/13/2000']*1000) >>> s.head() 0 3/11/2000 1 3/12/2000 2 3/13/2000 3 3/11/2000 4 3/12/2000 dtype: object >>> %timeit pd.to_datetime(s,infer_datetime_format=True) 100 loops, best of 3: 10.4 ms per loop >>> %timeit pd.to_datetime(s,infer_datetime_format=False) 1 loop, best of 3: 471 ms per loop Using a unix epoch time >>> pd.to_datetime(1490195805, unit='s') Timestamp('2017-03-22 15:16:45') >>> pd.to_datetime(1490195805433502912, unit='ns') Timestamp('2017-03-22 15:16:45.433502912') .. warning:: For float arg, precision rounding might happen. To prevent unexpected behavior use a fixed-width exact type. Using a non-unix epoch origin >>> pd.to_datetime([1, 2, 3], unit='D', origin=pd.Timestamp('1960-01-01')) 0 1960-01-02 1 1960-01-03 2 1960-01-04 See also -------- pandas.DataFrame.astype : Cast argument to a specified dtype. pandas.to_timedelta : Convert argument to timedelta.
t = pd.to_datetime([20190101, 20190102], format='%Y%m%d')
t.resample('D')
---------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-38-750675c5f7bb> in <module>() 1 t = pd.to_datetime([20190101, 20190102], format='%Y%m%d') ----> 2 t.resample('D') AttributeError: 'DatetimeIndex' object has no attribute 'resample'
help(pd.Series.resample)
Help on function resample in module pandas.core.generic: resample(self, rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start', kind=None, loffset=None, limit=None, base=0, on=None, level=None) Convenience method for frequency conversion and resampling of time series. Object must have a datetime-like index (DatetimeIndex, PeriodIndex, or TimedeltaIndex), or pass datetime-like values to the on or level keyword. Parameters ---------- rule : string the offset string or object representing target conversion axis : int, optional, default 0 closed : {'right', 'left'} Which side of bin interval is closed. The default is 'left' for all frequency offsets except for 'M', 'A', 'Q', 'BM', 'BA', 'BQ', and 'W' which all have a default of 'right'. label : {'right', 'left'} Which bin edge label to label bucket with. The default is 'left' for all frequency offsets except for 'M', 'A', 'Q', 'BM', 'BA', 'BQ', and 'W' which all have a default of 'right'. convention : {'start', 'end', 's', 'e'} For PeriodIndex only, controls whether to use the start or end of `rule` kind: {'timestamp', 'period'}, optional Pass 'timestamp' to convert the resulting index to a ``DateTimeIndex`` or 'period' to convert it to a ``PeriodIndex``. By default the input representation is retained. loffset : timedelta Adjust the resampled time labels base : int, default 0 For frequencies that evenly subdivide 1 day, the "origin" of the aggregated intervals. For example, for '5min' frequency, base could range from 0 through 4. Defaults to 0 on : string, optional For a DataFrame, column to use instead of index for resampling. Column must be datetime-like. .. versionadded:: 0.19.0 level : string or int, optional For a MultiIndex, level (name or number) to use for resampling. Level must be datetime-like. .. versionadded:: 0.19.0
data2 = data.copy()
data2['day'] = pd.to_datetime(data2.사용일자, format='%Y%m%d')
data2.head()
사용일자 | 노선명 | 역ID | 역명 | 승차총승객수 | 하차총승객수 | 등록일자 | day | |
---|---|---|---|---|---|---|---|---|
0 | 20190101 | 경춘선 | 1323 | 가평 | 1520 | 1436 | 20190104 | 2019-01-01 |
1 | 20190101 | 경춘선 | 1322 | 상천 | 275 | 114 | 20190104 | 2019-01-01 |
2 | 20190101 | 경춘선 | 1321 | 청평 | 1509 | 1083 | 20190104 | 2019-01-01 |
3 | 20190101 | 경춘선 | 1320 | 대성리 | 357 | 271 | 20190104 | 2019-01-01 |
4 | 20190101 | 경춘선 | 1319 | 마석 | 1772 | 1963 | 20190104 | 2019-01-01 |
data2.resample('D', on='day').mean()
사용일자 | 역ID | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|
day | |||||
2019-01-01 | 20190101.0 | 1882.940878 | 5776.939189 | 5732.271959 | 20190104.0 |
2019-01-02 | 20190102.0 | 1882.954392 | 12874.439189 | 12824.888514 | 20190105.0 |
2019-01-03 | 20190103.0 | 1879.278246 | 13277.726813 | 13225.161889 | 20190106.0 |
2019-01-04 | 20190104.0 | 1883.898305 | 14017.533898 | 13964.298305 | 20190107.0 |
2019-01-05 | 20190105.0 | 1884.156197 | 10292.519525 | 10237.760611 | 20190108.0 |
2019-01-06 | 20190106.0 | 1887.045763 | 7472.403390 | 7424.657627 | 20190109.0 |
2019-01-07 | 20190107.0 | 1882.947635 | 13216.939189 | 13166.797297 | 20190110.0 |
2019-01-08 | 20190108.0 | 1881.712352 | 13389.445008 | 13333.705584 | 20190111.0 |
2019-01-09 | 20190109.0 | 1887.143824 | 13224.035533 | 13169.321489 | 20190112.0 |
2019-01-10 | 20190110.0 | 1883.350254 | 13497.969543 | 13441.384095 | 20190113.0 |
2019-01-11 | 20190111.0 | 1880.714527 | 14106.962838 | 14057.800676 | 20190114.0 |
2019-01-12 | 20190112.0 | 1882.939189 | 10611.805743 | 10557.322635 | 20190115.0 |
2019-01-13 | 20190113.0 | 1882.947635 | 7603.130068 | 7553.091216 | 20190116.0 |
2019-01-14 | 20190114.0 | 1882.957770 | 12973.709459 | 12922.288851 | 20190117.0 |
2019-01-15 | 20190115.0 | 1881.253807 | 13243.169205 | 13192.695431 | 20190118.0 |
2019-01-16 | 20190116.0 | 1880.719595 | 13329.574324 | 13278.153716 | 20190119.0 |
2019-01-17 | 20190117.0 | 1883.949239 | 13595.201354 | 13542.375635 | 20190120.0 |
2019-01-18 | 20190118.0 | 1881.700508 | 14148.287648 | 14096.795262 | 20190121.0 |
2019-01-19 | 20190119.0 | 1883.949239 | 10591.871404 | 10532.864636 | 20190122.0 |
2019-01-20 | 20190120.0 | 1883.390203 | 7653.648649 | 7599.599662 | 20190123.0 |
2019-01-21 | 20190121.0 | 1883.053963 | 13045.849916 | 12998.018550 | 20190124.0 |
2019-01-22 | 20190122.0 | 1881.715736 | 13417.159052 | 13362.830795 | 20190125.0 |
2019-01-23 | 20190123.0 | 1883.157627 | 13618.425424 | 13565.737288 | 20190126.0 |
2019-01-24 | 20190124.0 | 1884.131757 | 13653.226351 | 13600.606419 | 20190127.0 |
2019-01-25 | 20190125.0 | 1884.156197 | 14327.000000 | 14274.300509 | 20190128.0 |
2019-01-26 | 20190126.0 | 1883.934010 | 10745.443316 | 10689.658206 | 20190129.0 |
2019-01-27 | 20190127.0 | 1880.719595 | 7830.212838 | 7781.349662 | 20190130.0 |
2019-01-28 | 20190128.0 | 1883.395270 | 13251.771959 | 13203.326014 | 20190131.0 |
2019-01-29 | 20190129.0 | 1881.966273 | 13404.536256 | 13355.789207 | 20190201.0 |
2019-01-30 | 20190130.0 | 1881.495784 | 13557.890388 | 13506.682968 | 20190202.0 |
2019-01-31 | 20190131.0 | 1881.253807 | 13366.074450 | 13317.610829 | 20190203.0 |
data2.groupby('day').mean()
사용일자 | 역ID | 승차총승객수 | 하차총승객수 | 등록일자 | |
---|---|---|---|---|---|
day | |||||
2019-01-01 | 20190101.0 | 1882.940878 | 5776.939189 | 5732.271959 | 20190104.0 |
2019-01-02 | 20190102.0 | 1882.954392 | 12874.439189 | 12824.888514 | 20190105.0 |
2019-01-03 | 20190103.0 | 1879.278246 | 13277.726813 | 13225.161889 | 20190106.0 |
2019-01-04 | 20190104.0 | 1883.898305 | 14017.533898 | 13964.298305 | 20190107.0 |
2019-01-05 | 20190105.0 | 1884.156197 | 10292.519525 | 10237.760611 | 20190108.0 |
2019-01-06 | 20190106.0 | 1887.045763 | 7472.403390 | 7424.657627 | 20190109.0 |
2019-01-07 | 20190107.0 | 1882.947635 | 13216.939189 | 13166.797297 | 20190110.0 |
2019-01-08 | 20190108.0 | 1881.712352 | 13389.445008 | 13333.705584 | 20190111.0 |
2019-01-09 | 20190109.0 | 1887.143824 | 13224.035533 | 13169.321489 | 20190112.0 |
2019-01-10 | 20190110.0 | 1883.350254 | 13497.969543 | 13441.384095 | 20190113.0 |
2019-01-11 | 20190111.0 | 1880.714527 | 14106.962838 | 14057.800676 | 20190114.0 |
2019-01-12 | 20190112.0 | 1882.939189 | 10611.805743 | 10557.322635 | 20190115.0 |
2019-01-13 | 20190113.0 | 1882.947635 | 7603.130068 | 7553.091216 | 20190116.0 |
2019-01-14 | 20190114.0 | 1882.957770 | 12973.709459 | 12922.288851 | 20190117.0 |
2019-01-15 | 20190115.0 | 1881.253807 | 13243.169205 | 13192.695431 | 20190118.0 |
2019-01-16 | 20190116.0 | 1880.719595 | 13329.574324 | 13278.153716 | 20190119.0 |
2019-01-17 | 20190117.0 | 1883.949239 | 13595.201354 | 13542.375635 | 20190120.0 |
2019-01-18 | 20190118.0 | 1881.700508 | 14148.287648 | 14096.795262 | 20190121.0 |
2019-01-19 | 20190119.0 | 1883.949239 | 10591.871404 | 10532.864636 | 20190122.0 |
2019-01-20 | 20190120.0 | 1883.390203 | 7653.648649 | 7599.599662 | 20190123.0 |
2019-01-21 | 20190121.0 | 1883.053963 | 13045.849916 | 12998.018550 | 20190124.0 |
2019-01-22 | 20190122.0 | 1881.715736 | 13417.159052 | 13362.830795 | 20190125.0 |
2019-01-23 | 20190123.0 | 1883.157627 | 13618.425424 | 13565.737288 | 20190126.0 |
2019-01-24 | 20190124.0 | 1884.131757 | 13653.226351 | 13600.606419 | 20190127.0 |
2019-01-25 | 20190125.0 | 1884.156197 | 14327.000000 | 14274.300509 | 20190128.0 |
2019-01-26 | 20190126.0 | 1883.934010 | 10745.443316 | 10689.658206 | 20190129.0 |
2019-01-27 | 20190127.0 | 1880.719595 | 7830.212838 | 7781.349662 | 20190130.0 |
2019-01-28 | 20190128.0 | 1883.395270 | 13251.771959 | 13203.326014 | 20190131.0 |
2019-01-29 | 20190129.0 | 1881.966273 | 13404.536256 | 13355.789207 | 20190201.0 |
2019-01-30 | 20190130.0 | 1881.495784 | 13557.890388 | 13506.682968 | 20190202.0 |
2019-01-31 | 20190131.0 | 1881.253807 | 13366.074450 | 13317.610829 | 20190203.0 |
pd.to_datetime('2019/3/3') + pd.tseries.offsets.MonthEnd(0)
Timestamp('2019-03-31 00:00:00')
pd.to_datetime('2019/3/2') + pd.tseries.offsets.MonthBegin(0)
Timestamp('2019-04-01 00:00:00')
pd.tseries.offsets.MonthEnd(datetime.now())
---------------------------------------------------------------------- TypeError Traceback (most recent call last) pandas\_libs\tslibs\offsets.pyx in pandas._libs.tslibs.offsets._BaseOffset._validate_n() TypeError: int() argument must be a string, a bytes-like object or a number, not 'datetime.datetime' During handling of the above exception, another exception occurred: TypeError Traceback (most recent call last) <ipython-input-65-97634b37577e> in <module>() ----> 1 pd.tseries.offsets.MonthEnd(datetime.now()) C:\Anaconda3\lib\site-packages\pandas\tseries\offsets.py in __init__(self, n, normalize) 956 957 def __init__(self, n=1, normalize=False): --> 958 self.n = self._validate_n(n) 959 self.normalize = normalize 960 pandas\_libs\tslibs\offsets.pyx in pandas._libs.tslibs.offsets._BaseOffset._validate_n() TypeError: `n` argument must be an integer, got <class 'datetime.datetime'>
'beginner > 파이썬 분석' 카테고리의 다른 글
캐글 타이타닉 데이터 분석 - 2 (1) | 2019.04.12 |
---|---|
캐글 타이타닉 데이터 분석 - 1 (0) | 2019.04.11 |
분석 -1 (0) | 2019.03.06 |
로지스틱 회귀분석 실습 (0) | 2019.02.11 |
인공신경망 실습 (2) | 2019.02.10 |