1
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?

【フォルダ管理術】ディレクトリ整理によるpythonのエラーの対応(親ディレクトリ、階層が上のファイルの話)

Last updated at Posted at 2024-09-25

私が、なるほど!と思ったフォルダ管理術と、一緒に起きたトラブルをご紹介します!!

実際に例として、2022年の各都道府県別の人口データをpythonで読み込むプログラムを書いてみましょう!

フォルダ管理

第一に、【各案件のフォルダ】を作成します。

今回だったら、各都道府県の人口を分析を行うため、「population」という専用のディレクトリを作成します。

さらに使うファイルを細かく分類していきます。
データ分析の時に使う、または作られるファイルは次の3種類に分けることができます。

1. 分析対象となるデータ

フォルダの名前は「Data」とします。csvファイルなど、分析で使うデータを入れていきます。
今回は「population.csv」を分析していきます。

2. 分析で使うファイル

フォルダの名前は「Analysis」とします。ipynbファイルなどが入ります。今回は「PopulationAnalysis.ipynb」で分析していきます。

3. 分析の結果を表すファイル

フォルダの名前は「Outcomes」とします。表などが入ります。

つまりはこんな感じです。
スクリーンショット 2024-09-26 0.15.23.png

Pythonのコードが動かない...?

このようなディレクトリの構造は非常にフォルダの見栄えがよく共有も簡単な一方、以下のようなコードではデータを読み込むことができませんでした。

エラーが出てしまう入力
import pandas as pd
df = pd.read_csv("population.csv")
df.head()
エラー
"[Errno 2] No such file or directory: 'population.csv'"

これは PopulationAnalysis.ipynb の親ディレクトリであるAnalysisに読み込むデータである population.csv が含まれていないことが原因です。

これを解決するためには population.csv のパスを指定して読み込む必要があります。

やることは先ほどのフォルダの構造に基づいて考えます。

スクリーンショット 2024-09-26 0.15.23.png

つまりやることは、

現在のディレクトリの親ディレクトリのパスを取得し、 そこに「Data/population.csv」をつけて作成したパスをPandasで読み込めば、population.csvをデータフレームとして取り込めそうです。

一歩下がって二歩進むイメージです!

パスの取得はPython のOSモジュールを使って行います。

コード
#現在のスクリプトファイルのディレクトリを取得
import os

#現在のディレクトリのパスを取得
current_directory = os.getcwd()

#親ディレクトリのパスを取得
parent_directory = os.path.dirname(current_directory)

#1つ上の階層にあるファイルのパスを作成
file_path = os.path.join(parent_directory, "Data/population.csv")

#完成したパスを出力
print(file_path)
出力
'/Users/<ユーザー名>/DataAnalysis/Data/population.csv'

これにより、データの読み込みに必要なパスを作成することができました!!

コード
df = pd.read_csv(file_path)
df.head()

これにより、population.csv を読み込むことができました!!

まとめ

ディレクトリ整理でデータが読み込めないって問題も、OSモジュールを使うことで解決できました!

出典

社会・人口統計体系 都道府県データ 基礎データ(総務省統計局)
https://www.e-stat.go.jp/stat-search/database?statdisp_id=0000010101

1
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
1
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?