FAQ
< All Topics

(3)政府統計のデータ活用

Table of Contents

回答

PythonのPandasライブラリでデータフレームを操作する際、二つの方法はデータの行数を調べるためによく使用されますが、通常は同じ結果を返すはずです。
len(df)はデータフレームの行数のみを返します。
df.shapeはタプルを返し、その第一要素が行数、第二要素が列数です。
理論上は、両者は同じ行数を返すべきであり、違いがある場合はデータフレームの状態の違いや、コードの実行タイミングの違いによる可能性が高いです。操作を一つずつ確認し、どの段階で行数に差異が生じるのかをご確認いただけますか?

回答

%matplotlib inlineは、Jupyter NotebookやJupyter LabなどのIPython環境でMatplotlibを使用する際に、図やグラフをノートブック内に直接表示させるためのマジックコマンドです。!pip install japanize-matplotlibでjapanize-matplotlibをインストールした後、import matplotlib.pyplot as pltを行っても、このマジックコマンドがなければ、作成したグラフや図は自動的にノートブック内に表示されません。

回答

エラーの原因として考えられるのは、指定している列名がDataFrameに存在しないか、あるいは列名の指定方法に誤りがある可能性があります。また、列名に使用されている文字が全角か半角か、特殊文字が含まれているかどうかも影響する可能性があります。対処方法です。
(1) まず、DataFrame df の列名を確認して、指定しようとしている列が正確に存在するかを確認してください。これは print(df.columns) を実行することで行えます。
(2) 列名が正しく存在することを確認したら、指定する列名が完全に一致するようにしてください。全角文字や半角文字、特殊文字(~や?など)が含まれている場合、正確にそれらを指定する必要があります。

回答

ご指摘ありがとうございます。
⑨と⑩の手順はExcelなどで行ってください。ただしオープンデータは日々更新されることが考えられますので、ダウンロードしたファイル名が関連ファイル名と同一になりませんが、問題ありません。
実際にダウンロードされない場合は、関連ファイルのCSVを用いれば、それ以降の演習を行うことができます。

回答

index_col=”全国・都道府県”という引数をpd.read_csv()に指定することで、CSVファイルの中の「全国・都道府県」列がデータフレームのインデックス(行の名前やラベル)として使われるようになります。つまり、この列がデータフレームの行を識別するキーとして機能するのです。

他の列、例えば「表章項目」や「時間軸」などについては、このindex_col引数では何も操作をしていません。これらの列は通常通りデータフレームの中にデータ列として読み込まれます。ただし、これらの列をデータフレームから除外したい場合は、usecols 引数を使用して読み込む列を限定することができます。

つまり、index_col引数は特定の列をデータフレームのインデックスに設定するだけであり、他の列には影響を与えません。他の列の取り扱い(除外するかどうかなど)は別途指定が必要です。

申し込み