趣味で計算流砂水理

趣味で計算流砂水理 Computational Sediment Hydraulics for Fun Learning

数値計算とか河川工学とかプログラミングのことを書いています

MENU

備忘録:web上のcsvファイルをpythonで直接読み込む

スポンサーリンク

web上のcsvファイル(サンプル)は、 下のようなローカルファイルと同様の方法では読み込むことが出来ません。

fpath = '***.csv'
with open(fpath, "r", encoding='shiftjis') as f:
    l = next(f)

そのため、urllib.requestモジュールを使って以下のように扱います。 その際に、open時にエンコードが指定できないため、シフトJISの場合はdecodeが必要になります。

import urllib.request

fpath = 'https://raw.githubusercontent.com/computational-sediment-hyd/japaneseriverdb/master/data_pickup/8909090001oudan.csv'
with urllib.request.urlopen(fpath) as response:
    l = next(response).decode('shiftjis')

なお、表形式のものはpandasを使って以下のように読み込むほうが簡単です。こちらはローカルファイルと同じです。

import pandas as pd
fpath = 'https://raw.githubusercontent.com/computational-sediment-hyd/japaneseriverdb/master/data_pickup/8909090001kui.csv'
df = pd.read_csv(fpath, encoding='shiftJIS')

上記では自動で型推論されるため、型を指定したい時はdtypeを設定します。

df = pd.read_csv(fpath, encoding='shiftJIS', dtype=str)

参考サイト