初学者のためのプログラミング学習サイトファイル[Pythonプログラミング]WEB上に有るファイルを開いてみる2022年08月06日カテゴリ:Pythonプログラミングたまには真面目に仕事で使えそうなプログラミングをしてみましょう解説動画はこちら1.WEB上にあるCSVファイルを開く今回はWEB上にあるファイルをダウンロードせず、直接開いてみましょう。読み込みするファイルは、総務省かどっかが出しているE-statのデータです。='https://www.e-stat.go.jp/stat-search/file-download?statInfId=000031524010&fileKind=1'これを読み込みするにはPandasライブラリを使います。encoding='cp932')df読み込みは出来ましたが最後の方にゴミが載っています。政府が用意しているデータはリテラシーが低く、ゴミなのでそのままだと使えないことが多いです。最後尾の行数を加えるといらない部分を飛ばして読み込み出来ます。skipfooter=2)dfPandasライブラリを用いないで読み込みする場合はurllibが使えます。urllib.request.urlopenで開いたファイルはhttp.client.HTTPResponseオブジェクトになりますオブジェクト.decode()でstrオブジェクトに変換できます。break"都道府県コード","都道府県名","元号","和暦(年)","西暦(年)","注","人口(総数)","人口(男)","人口(女)"リストでまとめて読み込んでしまう場合は次のように書けばいけます。'"00","全国","大正",9,1920,"",55963053,28044185,27918868',・・・ゴミデータが最後の3個に入ってしまっているのでリストのスライス参照で取り除くと良いでしょう。lines[970:-3]これでpandasでは難しい1行単位でのデータ操作を行えます。2.データを見るさて、ファイルが読み込めたので次は中身を細かくみてみましょう。ファイルはこんな感じになっています。全国の人口だけを見るdf[df['都道府県名']=='全国'][['西暦(年)','人口(総数)']]Pandasのデータフレームでは条件抽出が行えるので該当する部分だけを抜き出すことができます。値を複数指定して条件抽出ができます。人口が増加した都道府県は?df_concat[df_concat['増減']=='増加']差分を見るにはまずはデータフレームとして該当するデータを年ごとに作成しておきそれを列方向に結合させます。のちに数値化して差分を計算することができます。Colabなどを使えばPythonをインストールしなくてもPC上からファイル操作を行えますエクセルなどで開けないファイルが有るときは是非Pythonを活用してみましょう。CodeWhispererで爆速コーディングコーディングに迷った際に役に立ちWEB検索する時間を無くして作業時間を効率化できます。