これ,マジで便利です。学校名を入れると学校コードが出てきます。
— ほりたん (@horilab) September 4, 2022
学校コード検索https://t.co/9ymCvhZnS4
というわけで、学校コード検索のようなサイトを作ってみましょう。
まず、文部科学省 学校コードからデータを取得します。ここではとりあえず「大学、短期大学、高等専門学校」のCSVをいただいてきて、学校コード、学校名、学校所在地、郵便番号だけを切り出します。Excelでもできますが、Pythonでは次のようにします:
import pandas as pd df = pd.read_csv("221222-mxt-mxt_chousa01-1000011635_6.csv", header=None, encoding="cp932", dtype=str, skiprows=2) df[[0,5,6,7]].to_csv("schools.tsv", index=False, header=False, sep="\t")
Rでは次のようにします:
df = read.csv("221222-mxt-mxt_chousa01-1000011635_6.csv", colClasses="character", header=FALSE, fileEncoding="CP932", skip=6) write.table(df[c(1,6,7,8)], "schools.tsv", quote=FALSE, sep="\t", row.names=FALSE, col.names=FALSE, fileEncoding="UTF-8")
これをSQLiteデータベースに読み込ませます:
sqlite3 schools.db create table schools(id text, name text, address text, zip text); .separator "\t" .import schools.tsv schools
うまくいったか検索で確認しましょう。完全一致:
select * from schools where name='三重大学';
部分一致:
select * from schools where name like '%三重%';
「短期」という文字列を含む件数:
select count(*) from schools where name like '%短期%';
「短期」という文字列を含む最初の20件:
select * from schools where name like '%短期%' limit 20;
「短期」という文字列を含む最初の40件を除外した20件(つまり41件目〜60件目):
select * from schools where name like '%短期%' limit 40, 20;