2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

駅データ.jp のデータを調べてみた

Last updated at Posted at 2023-04-13

仕事の都合で路線や駅のデータを調べる必要があり、公開されている ekidata のデータをいろいろ確認したメモです。

駅データ.jp とは

駅データ.jpとは、日本の鉄道駅の情報(駅データ)を配布するサイトです。

当サイトで提供している駅データは、法人・個人及び、商用・非商用を問わず、どなたでもご利用いただくことができます。詳細は「 利用規約 」をご覧ください。
当サイトの駅データを用いて生じたいかなる損害について弊社は責任を負いません。

という駅や路線の調査などには非常にありがたいサービスです。

前準備

駅データから各種データをダウンロードしておく。(会員登録が必要)
https://ekidata.jp/dl/

  • 事業者データ
  • 路線データ
  • 駅データ
  • 接続駅データ

各データの仕様はこちら。
https://ekidata.jp/doc/

確認は jupyter notebook で実行しています。この記事は以下の notebook で確認したことを元にしています。
https://github.com/hrkenz/jupyter-notebook/blob/main/ekidata.ipynb

上記の notebook の実行環境は以下です。

  • Ubuntu 22.04
  • Python 3.10

事業者データ

今回使用するのは 20230105 時点の version のデータ。
仕様はこちら。
https://ekidata.jp/doc/company.php

import pandas as pd
df_company = pd.read_csv('../files/ekidata/company20230105.csv')
df_company.head()
company_cd rr_cd company_name company_name_k company_name_h company_name_r company_url company_type e_status e_sort
0 1 11 JR北海道 ジェイアールホッカイドウ 北海道旅客鉄道株式会社 JR北海道 http://www.jrhokkaido.co.jp/ 1 0 1
1 2 11 JR東日本 ジェイアールヒガシニホン 東日本旅客鉄道株式会社 JR東日本 http://www.jreast.co.jp/ 1 0 2
2 3 11 JR東海 ジェイアールトウカイ 東海旅客鉄道株式会社 JR東海 http://jr-central.co.jp/ 1 0 3
3 4 11 JR西日本 ジェイアールニシニホン 西日本旅客鉄道株式会社 JR西日本 http://www.westjr.co.jp/ 1 0 4
4 5 11 JR四国 ジェイアールシコク 四国旅客鉄道株式会社 JR四国 http://www.jr-shikoku.co.jp/ 1 0 5
df_company.shape
(171, 10)

171行あるということは、日本には鉄道事業の会社が171社もあるということになります。
廃止した事業者も含まれるかと思いますが、個人的には想像以上に多い数字です。

欠損値の確認

df_company.isna().sum().reset_index()
index 0
0 company_cd 0
1 rr_cd 0
2 company_name 0
3 company_name_k 0
4 company_name_h 0
5 company_name_r 0
6 company_url 7
7 company_type 0
8 e_status 0
9 e_sort 0

compamy_url が欠損しているものが7行。他のカラムでは欠損は無いようです。

df_company[df_company.company_url.isnull()]
company_cd rr_cd company_name company_name_k company_name_h company_name_r company_url company_type e_status e_sort
24 103 99 北海道ちほく高原鉄道 ホッカイドウチホクコウゲンテツドウ 北海道ちほく高原鉄道株式会社 北海道ちほく高原鉄道 NaN 0 2 103
35 113 99 くりはら田園鉄道 クリハラデンエンテツドウ くりはら田園鉄道株式会社 栗原電鉄 NaN 0 2 113
83 161 99 神岡鉄道 カミオカテツドウ 神岡鉄道株式会社 神鉄 NaN 0 2 161
105 180 99 桃花台新交通 トウカダイシンコウツウ 桃花台新交通株式会社 桃花台新交通 NaN 0 2 178
115 247 99 四日市あすなろう鉄道 ヨッカイチアスナロウテツドウ 四日市あすなろう鉄道株式会社 あすてつ NaN 0 0 187
135 208 99 三木鉄道 ミキテツドウ 三木鉄道株式会社 三木鉄道 NaN 0 2 206
147 220 99 スカイレールサービス スカイレールサービス スカイレールサービス株式会社 スカイレールサービス NaN 0 0 218

compamy_url が欠損している行を確認。e_status2(廃止)の事業者を除くと以下2つの事業者。

鉄道コード rr_cd

df_company.groupby('rr_cd').size().reset_index()
rr_cd 0
0 11 6
1 21 1
2 22 1
3 23 1
4 24 1
5 25 1
6 26 1
7 27 1
8 28 1
9 29 1
10 30 1
11 31 1
12 32 1
13 33 1
14 34 1
15 35 1
16 36 1
17 99 149

1199 以外はすべて1行のみ。
11 も6行のみで、残りすべてが 99 ですが、仕様を見ても鉄道コードについての説明がほぼ無いため、何を表しているのかはよくわかりません。

とりあえず 11 を見てみます。

df_company[df_company.rr_cd == 11]
company_cd rr_cd company_name company_name_k company_name_h company_name_r company_url company_type e_status e_sort
0 1 11 JR北海道 ジェイアールホッカイドウ 北海道旅客鉄道株式会社 JR北海道 http://www.jrhokkaido.co.jp/ 1 0 1
1 2 11 JR東日本 ジェイアールヒガシニホン 東日本旅客鉄道株式会社 JR東日本 http://www.jreast.co.jp/ 1 0 2
2 3 11 JR東海 ジェイアールトウカイ 東海旅客鉄道株式会社 JR東海 http://jr-central.co.jp/ 1 0 3
3 4 11 JR西日本 ジェイアールニシニホン 西日本旅客鉄道株式会社 JR西日本 http://www.westjr.co.jp/ 1 0 4
4 5 11 JR四国 ジェイアールシコク 四国旅客鉄道株式会社 JR四国 http://www.jr-shikoku.co.jp/ 1 0 5
5 6 11 JR九州 ジェイアールキュウシュウ 九州旅客鉄道株式会社 JR九州 http://www.jrkyushu.co.jp/ 1 0 6

11 は JR ということがわかりました。
99 は数が多いので後回しにして、1199 以外を見てみます。

df_company[~df_company.rr_cd.isin([11, 99])]
company_cd rr_cd company_name company_name_k company_name_h company_name_r company_url company_type e_status e_sort
6 11 21 東武鉄道 トウブテツドウ 東武鉄道株式会社 東武 http://www.tobu.co.jp/ 2 0 11
7 12 22 西武鉄道 セイブテツドウ 西武鉄道株式会社 西武 http://www.seibu-group.co.jp/railways/ 2 0 12
8 13 23 京成電鉄 ケイセイデンテツ 京成電鉄株式会社 京成 http://www.keisei.co.jp/ 2 0 13
9 14 24 京王電鉄 ケイオウデンテツ 京王電鉄株式会社 京王 http://www.keio.co.jp/ 2 0 14
10 15 25 小田急電鉄 オダキュウデンテツ 小田急電鉄株式会社 小田急 http://www.odakyu.jp/ 2 0 15
11 16 26 東急電鉄 トウキュウデンテツ 東京急行電鉄株式会社 東急 http://www.tokyu.co.jp/ 2 0 16
12 17 27 京急電鉄 ケイキュウデンテツ 京浜急行電鉄株式会社 京急 http://www.keikyu.co.jp/ 2 0 17
13 18 28 東京メトロ トウキョウメトロ 東京地下鉄株式会社 東京メトロ http://www.tokyometro.jp/ 2 0 18
14 19 29 相模鉄道 サガミテツドウ 相模鉄道株式会社 相鉄 http://www.sotetsu.co.jp/ 2 0 19
15 20 30 名古屋鉄道 ナゴヤテツドウ 名古屋鉄道株式会社 名鉄 http://www.meitetsu.co.jp/ 2 0 20
16 21 31 近畿日本鉄道 キンキニホンテツドウ 近畿日本鉄道株式会社 近鉄 http://www.kintetsu.co.jp/ 2 0 21
17 22 32 南海電鉄 ナンカイデンテツ 南海電気鉄道株式会社 南海 http://www.nankai.co.jp/ 2 0 22
18 23 33 京阪電鉄 ケイハンデンテツ 京阪電気鉄道株式会社 京阪 http://www.keihan.co.jp/ 2 0 23
19 24 34 阪急電鉄 ハンキュウデンテツ 阪急電鉄株式会社 阪急 http://rail.hankyu.co.jp/ 2 0 24
20 25 35 阪神電鉄 ハンシンデンテツ 阪神電気鉄道株式会社 阪神 http://rail.hanshin.co.jp/ 2 0 25
21 26 36 西日本鉄道 ニシニホンテツドウ 西日本鉄道株式会社 西鉄 http://www.nishitetsu.co.jp/ 2 0 26

21~36 は大手の私鉄が該当していそうです。
大手というのも曖昧な表現ですが、よく知られている比較的大きな会社が該当すると思われます。
残る99は地方の鉄道会社など JR と大手私鉄以外のすべてでしょう。

事業者区分 company_type

仕様によると 0:その他 1:JR 2:大手私鉄 3:準大手私鉄 という定義。

df_company.groupby('company_type').size().reset_index()
company_type 0
0 0 143
1 1 6
2 2 17
3 3 5

JRが 6 というのは rr_cd の集計とも一致します。
大手私鉄は 17 なのですが、rr_cd の集計では 16 でした。差異が気になるので調べてみます。

df_company[df_company.company_type == 2]
company_cd rr_cd company_name company_name_k company_name_h company_name_r company_url company_type e_status e_sort
6 11 21 東武鉄道 トウブテツドウ 東武鉄道株式会社 東武 http://www.tobu.co.jp/ 2 0 11
7 12 22 西武鉄道 セイブテツドウ 西武鉄道株式会社 西武 http://www.seibu-group.co.jp/railways/ 2 0 12
8 13 23 京成電鉄 ケイセイデンテツ 京成電鉄株式会社 京成 http://www.keisei.co.jp/ 2 0 13
9 14 24 京王電鉄 ケイオウデンテツ 京王電鉄株式会社 京王 http://www.keio.co.jp/ 2 0 14
10 15 25 小田急電鉄 オダキュウデンテツ 小田急電鉄株式会社 小田急 http://www.odakyu.jp/ 2 0 15
11 16 26 東急電鉄 トウキュウデンテツ 東京急行電鉄株式会社 東急 http://www.tokyu.co.jp/ 2 0 16
12 17 27 京急電鉄 ケイキュウデンテツ 京浜急行電鉄株式会社 京急 http://www.keikyu.co.jp/ 2 0 17
13 18 28 東京メトロ トウキョウメトロ 東京地下鉄株式会社 東京メトロ http://www.tokyometro.jp/ 2 0 18
14 19 29 相模鉄道 サガミテツドウ 相模鉄道株式会社 相鉄 http://www.sotetsu.co.jp/ 2 0 19
15 20 30 名古屋鉄道 ナゴヤテツドウ 名古屋鉄道株式会社 名鉄 http://www.meitetsu.co.jp/ 2 0 20
16 21 31 近畿日本鉄道 キンキニホンテツドウ 近畿日本鉄道株式会社 近鉄 http://www.kintetsu.co.jp/ 2 0 21
17 22 32 南海電鉄 ナンカイデンテツ 南海電気鉄道株式会社 南海 http://www.nankai.co.jp/ 2 0 22
18 23 33 京阪電鉄 ケイハンデンテツ 京阪電気鉄道株式会社 京阪 http://www.keihan.co.jp/ 2 0 23
19 24 34 阪急電鉄 ハンキュウデンテツ 阪急電鉄株式会社 阪急 http://rail.hankyu.co.jp/ 2 0 24
20 25 35 阪神電鉄 ハンシンデンテツ 阪神電気鉄道株式会社 阪神 http://rail.hanshin.co.jp/ 2 0 25
21 26 36 西日本鉄道 ニシニホンテツドウ 西日本鉄道株式会社 西鉄 http://www.nishitetsu.co.jp/ 2 0 26
126 249 99 Osaka Metro オオサカメトロ 大阪市高速電気軌道株式会社 大阪メトロ http://www.osakametro.co.jp 2 0 197

先程の16件の事業者に加えて Osaka Metro が大手私鉄と判定されているようです。
rr_cd は定義がわからず、内容から 11 99 以外は大手私鉄と予想したのですが、これでさらに定義の謎が深まってしまいました。。

状態 e_status

仕様によると 0:運用中 1:運用前 2:廃止 という定義。

df_company.groupby('e_status').size().reset_index()
e_status 0
0 0 163
1 2 8

20230105 時点の version では 1:運用前 という事業者は存在していないようです。

2:廃止 の事業者を見てみます。

df_company[df_company.e_status == 2]
company_cd rr_cd company_name company_name_k company_name_h company_name_r company_url company_type e_status e_sort
24 103 99 北海道ちほく高原鉄道 ホッカイドウチホクコウゲンテツドウ 北海道ちほく高原鉄道株式会社 北海道ちほく高原鉄道 NaN 0 2 103
28 106 99 十和田観光電鉄 トワダカンコウデンデツ 十和田観光電鉄株式会社 十和田観光電鉄 http://www.toutetsu.co.jp/ 0 2 106
35 113 99 くりはら田園鉄道 クリハラデンエンテツドウ くりはら田園鉄道株式会社 栗原電鉄 NaN 0 2 113
57 135 99 鹿島鉄道 カシマテツドウ 鹿島鉄道株式会社 鹿鉄 http://www.kantetsu.co.jp/katetsu/ 0 2 135
83 161 99 神岡鉄道 カミオカテツドウ 神岡鉄道株式会社 神鉄 NaN 0 2 161
105 180 99 桃花台新交通 トウカダイシンコウツウ 桃花台新交通株式会社 桃花台新交通 NaN 0 2 178
132 205 99 北神急行電鉄 ホクシンキュウコウデンテツ 北神急行電鉄株式会社 北神急行 http://www.hokushinkyuko.co.jp/ 0 2 203
135 208 99 三木鉄道 ミキテツドウ 三木鉄道株式会社 三木鉄道 NaN 0 2 206

どの事業者も私は知らないのですが、かつては多くの人を乗せて運行する路線を運営していたことでしょう。

路線データ

今回使用するのは 20230320 時点の version のデータ。
仕様はこちら。
https://ekidata.jp/doc/line.php

df_line = pd.read_csv('../files/ekidata/line20230320free.csv')
df_line.head()
line_cd company_cd line_name line_name_k line_name_h line_color_c line_color_t line_type lon lat zoom e_status e_sort
0 1001 3 中央新幹線 チュウオウシンカンセン 中央新幹線 NaN NaN NaN 137.493896 35.411438 8 1 1001
1 1002 3 東海道新幹線 トウカイドウシンカンセン 東海道新幹線 NaN NaN NaN 137.721489 35.144122 7 0 1002
2 1003 4 山陽新幹線 サンヨウシンカンセン 山陽新幹線 NaN NaN NaN 133.147896 34.419338 7 0 1003
3 1004 2 東北新幹線 トウホクシンカンセン 東北新幹線 NaN NaN NaN 140.763192 38.274267 7 0 1004
4 1005 2 上越新幹線 ジョウエツシンカンセン 上越新幹線 NaN NaN NaN 139.121488 36.798565 8 0 1005
df_line.shape
(620, 13)

行数は 620。日本には多くの路線が走っていることがわかります。

欠損値の確認

df_line.isna().sum().reset_index()
index 0
0 line_cd 0
1 company_cd 0
2 line_name 0
3 line_name_k 0
4 line_name_h 0
5 line_color_c 572
6 line_color_t 572
7 line_type 620
8 lon 0
9 lat 0
10 zoom 0
11 e_status 0
12 e_sort 0

line_color_c line_color_t line_type は有料会員のみのデータになるらしく、今回使用する無料版データでは欠損しています。
他に欠損はありません。

事業者コード company_cd

先に確認した事業者データがマスターになります。
確認しやすくするために事業者データと結合し company_name を付加、ついでに欠損値となっているカラムを削除します。

df_line2 = df_line.drop(['line_color_c', 'line_color_t', 'line_type'], axis=1) \
    .merge(df_company[['company_cd', 'company_name']], how='inner')
df_line2.head()
line_cd company_cd line_name line_name_k line_name_h lon lat zoom e_status e_sort company_name
0 1001 3 中央新幹線 チュウオウシンカンセン 中央新幹線 137.493896 35.411438 8 1 1001 JR東海
1 1002 3 東海道新幹線 トウカイドウシンカンセン 東海道新幹線 137.721489 35.144122 7 0 1002 JR東海
2 11402 3 JR身延線 ミノブセン JR身延線 138.532397 35.392163 10 0 11402 JR東海
3 11411 3 JR中央本線(名古屋~塩尻) チュウオウホンセン JR中央本線(名古屋~塩尻) 137.468492 35.662471 9 0 11411 JR東海
4 11413 3 JR飯田線(豊橋~天竜峡) イイダセン JR飯田線(豊橋~天竜峡) 137.668949 35.125648 10 0 11413 JR東海
df_line2.shape
(620, 11)

事業者ごとに所属する路線数を算出してみます。

df_line2.groupby(['company_cd', 'company_name']) \
    .size() \
    .nlargest(20) \
    .reset_index(name='count')
company_cd company_name count
0 2 JR東日本 88
1 4 JR西日本 67
2 6 JR九州 30
3 21 近畿日本鉄道 25
4 20 名古屋鉄道 21
5 1 JR北海道 20
6 3 JR東海 17
7 11 東武鉄道 12
8 12 西武鉄道 12
9 16 東急電鉄 9
10 18 東京メトロ 9
11 22 南海電鉄 9
12 24 阪急電鉄 9
13 249 Osaka Metro 9
14 5 JR四国 8
15 23 京阪電鉄 8
16 222 広島電鉄 8
17 226 伊予鉄道 8
18 14 京王電鉄 7
19 13 京成電鉄 6

JRと大手私鉄が並びます。当然の結果。

状態 e_status

仕様によると事業者と同様に 0:運用中 1:運用前 2:廃止 という定義。

df_line2.groupby('e_status').size().reset_index()
e_status 0
0 0 600
1 1 1
2 2 19

1:運用前 の路線があるので確認してみる。

df_line2[df_line2.e_status == 1]
line_cd company_cd line_name line_name_k line_name_h lon lat zoom e_status e_sort company_name
0 1001 3 中央新幹線 チュウオウシンカンセン 中央新幹線 137.493896 35.411438 8 1 1001 JR東海

中央新幹線 という聞いたことがありそうな名前の路線は、存在しているが運用前のステータス。

詳細が不明なので wikipedia を読む。
https://ja.wikipedia.org/wiki/%E4%B8%AD%E5%A4%AE%E6%96%B0%E5%B9%B9%E7%B7%9A

なんとリニアモーターカーの路線!開業は2027年予定。

緯度・経度 lat lon

仕様によると、路線表示時の中央緯度と経度とのこと。路線表示 とはおそらく地図上に描画したときのことを指すと思われます。

folium を使って先程の 中央新幹線 の緯度・経度をプロットしてみます。

import folium
location = df_line2[df_line2.line_cd == 1001][['lat', 'lon']].values # array
zoom = (df_line2[df_line2.line_cd == 1001]['zoom'].values)[0].item() # int

map = folium.Map(location=location,zoom_start=zoom)
folium.Marker(location=location).add_to(map)
map

image.png

なるほど?
これは路線の経路を同時にプロットしてみないとよくわからない。

駅データ

今回使用するのは 20230320 時点の version のデータ。
仕様はこちら。
https://ekidata.jp/doc/station.php

df_station = pd.read_csv('../files/ekidata/station20230320free.csv')
df_station.head()
station_cd station_g_cd station_name station_name_k station_name_r line_cd pref_cd post address lon lat open_ymd close_ymd e_status e_sort
0 1110101 1110101 函館 NaN NaN 11101 1 040-0063 北海道函館市若松町12-13 140.726413 41.773709 1902-12-10 0000-00-00 0 1110101
1 1110102 1110102 五稜郭 NaN NaN 11101 1 041-0813 函館市亀田本町 140.733539 41.803557 0000-00-00 0000-00-00 0 1110102
2 1110103 1110103 桔梗 NaN NaN 11101 1 041-0801 北海道函館市桔梗3丁目41-36 140.722952 41.846457 1902-12-10 0000-00-00 0 1110103
3 1110104 1110104 大中山 NaN NaN 11101 1 041-1121 亀田郡七飯町大字大中山 140.713580 41.864641 0000-00-00 0000-00-00 0 1110104
4 1110105 1110105 七飯 NaN NaN 11101 1 041-1111 亀田郡七飯町字本町 140.688556 41.886971 0000-00-00 0000-00-00 0 1110105
df_station.shape
(10896, 15)

駅の数は1万以上。新宿や東京などの巨大なターミナルから、あまり利用のない無人駅など、ピンキリでたくさんの駅があるのでしょう。

欠損値の確認

df_station.isna().sum().reset_index()
index 0
0 station_cd 0
1 station_g_cd 0
2 station_name 0
3 station_name_k 10896
4 station_name_r 10896
5 line_cd 0
6 pref_cd 0
7 post 0
8 address 0
9 lon 0
10 lat 0
11 open_ymd 0
12 close_ymd 0
13 e_status 0
14 e_sort 0

station_name_k station_name_r は有料会員のみのデータのため、今回使用する無料版データでは欠損しています。
この後の確認をしやすいように欠損値のカラムを削除し、路線のデータと結合し、路線名を追加します。

df_station = df_station.drop(['station_name_k', 'station_name_r'], axis=1) \
    .merge(df_line[['line_cd', 'line_name', 'company_name']], how='inner')

駅グループコード station_g_cd

仕様を見ても 整数6・7桁 という情報以外はなく、詳細はわかりません。
名前からして、複数の駅をある法則に基づいてグルーピングしていると思われます。

同じ station_g_cd に所属する駅が多い順に並べてみます。

df_station.groupby('station_g_cd') \
    .size() \
    .nlargest(5) \
    .reset_index(name='count')
station_g_cd count
0 1130208 14
1 1160214 13
2 1130101 11
3 1130105 11
4 1130205 11

最も所属する駅が多い station_g_cd1130208 であるデータを確認します。

df_station[df_station.station_g_cd == 1130208]
station_cd station_g_cd station_name line_cd pref_cd post address lon lat open_ymd close_ymd e_status e_sort line_name company_name
1293 1130208 1130208 新宿 11302 13 160-0022 東京都新宿区新宿三丁目38-1 139.700464 35.689729 1885-03-01 0000-00-00 0 1130208 JR山手線 JR東日本
1456 1131103 1130208 新宿 11311 13 160-0022 東京都新宿区新宿三丁目38-1 139.700464 35.689729 0000-00-00 0000-00-00 0 1131103 JR中央本線(東京~塩尻) JR東日本
1511 1131211 1130208 新宿 11312 13 160-0022 東京都新宿区新宿三丁目38-1 139.700464 35.689729 0000-00-00 0000-00-00 0 1131211 JR中央線(快速) JR東日本
1540 1131310 1130208 新宿 11313 13 160-0022 東京都新宿区新宿三丁目38-1 139.700464 35.689729 0000-00-00 0000-00-00 0 1131310 JR中央・総武線 JR東日本
1783 1132104 1130208 新宿 11321 13 160-0022 東京都新宿区新宿三丁目38-1 139.700464 35.689729 0000-00-00 0000-00-00 0 1132104 JR埼京線 JR東日本
1950 1132806 1130208 新宿 11328 13 160-0022 東京都新宿区新宿三丁目38-1 139.700464 35.689729 0000-00-00 0000-00-00 0 1132806 JR成田エクスプレス JR東日本
2032 1133304 1130208 新宿 11333 13 160-0022 東京都新宿区新宿三丁目38-1 139.700464 35.689729 0000-00-00 0000-00-00 0 1133304 JR湘南新宿ライン JR東日本
5485 2400101 1130208 新宿 24001 13 160-0023 東京都新宿区西新宿一丁目1-4 139.699187 35.690163 0000-00-00 0000-00-00 0 2400101 京王線 京王電鉄
5557 2400701 1130208 新線新宿 24007 13 160-0023 東京都新宿区西新宿一丁目18 139.698812 35.688690 0000-00-00 0000-00-00 0 2400701 京王新線 京王電鉄
5561 2500101 1130208 新宿 25001 13 160-0023 東京都新宿区西新宿一丁目1-3 139.699574 35.691435 0000-00-00 0000-00-00 0 2500101 小田急線 小田急電鉄
5863 2800218 1130208 新宿 28002 13 160-0023 東京都新宿区西新宿一丁目西口地下街1号 139.700711 35.692350 0000-00-00 0000-00-00 0 2800218 東京メトロ丸ノ内線 東京メトロ
6038 2900303 1130208 新宿 29003 13 160-0022 東京都新宿区新宿三丁目38-1 139.700464 35.689729 0000-00-00 0000-00-00 0 2900301 相鉄・JR直通線 相模鉄道
7649 9930128 1130208 新宿 99301 13 151-0053 東京都渋谷区代々木二丁目1-1 139.698812 35.688690 0000-00-00 0000-00-00 0 9930128 都営大江戸線 東京都交通局
7707 9930401 1130208 新宿 99304 13 160-0023 東京都新宿区西新宿一丁目18 139.698812 35.688690 0000-00-00 0000-00-00 0 9930401 都営新宿線 東京都交通局

station_g_cd1130208 であるデータはあらゆる路線の新宿駅をグルーピングしたものでした。
おそらくは1つの駅、あるいは駅同士がくっついているとか距離が近いとかで路線間の乗り換え可能な駅の集合体のように見えます。

状態 e_status

仕様によると事業者と同様に 0:運用中 1:運用前 2:廃止 という定義。

df_station.groupby('e_status').size().reset_index()
e_status 0
0 0 10471
1 2 425

運用前のデータは存在しません。
すでに廃止された駅が 425 もあります。

接続駅データ

今回使用するのは 20230320 時点の version のデータ。
仕様はこちら。
https://ekidata.jp/doc/join.php

接続駅というのは、定義を見る限り、路線ごとの隣り合った駅のことを指すようです。

df_join = pd.read_csv('../files/ekidata/join20230320.csv')
df_join.head()
line_cd station_cd1 station_cd2
0 1002 100201 100202
1 1002 100202 100203
2 1002 100203 100204
3 1002 100204 100205
4 1002 100205 100206

欠損値の確認

df_join.isna().sum().reset_index()
index 0
0 line_cd 0
1 station_cd1 0
2 station_cd2 0

このデータの特性上、さすがに欠損値はありません。

df_join[df_join.line_cd == 1002]
line_cd station_cd1 station_cd2
0 1002 100201 100202
1 1002 100202 100203
2 1002 100203 100204
3 1002 100204 100205
4 1002 100205 100206
5 1002 100206 100207
6 1002 100207 100208
7 1002 100208 100209
8 1002 100209 100210
9 1002 100210 100211
10 1002 100211 100212
11 1002 100212 100213
12 1002 100213 100214
13 1002 100214 100215
14 1002 100215 100216
15 1002 100216 100217

試しに東海道新幹線(line_cd = 1002)を確認してみると上記の通り。
駅のデータと結合し、駅ごとの lat lon を使って路線図を描画することもできるかもしれません。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?