前回(記事URL:https://himahimaknowledge.blogspot.com/2025/01/spyder-start-pref.html)と前々回(記事URL:https://himahimaknowledge.blogspot.com/2025/01/anaconda-start.html)の記事をある程度みながら作成してもらえましたでしょうか?
これである程度不自由なくpythonの環境構築ができたと思うので、これからは実際にコードを書いていく上で、必要になりそうな知識について共有していきます。
今回は、pythonでデータを読む上で必要になるフォルダのディレクトリ構造(ファイルパス)についてざっくりとわかるように紹介してこうとおもいます。
pythonでエクセルデータ(csvデータ)を読む上でディレクトリの理解は必要
pythonのコードを書く、特にcsvファイルみたいなデータを読むときにはそのpythonコードが書かれたファイル(.pyファイルといいます)がパソコンのどこのフォルダにあるかとしっかりと把握しておく必要があります。
たいていの場合には、作りたいプログラムのフォルダを作成します。今回は例として、Cドライブのドキュメント直下にフォルダを作る感じにしましょう。
例えばpythonプログラムでtest.csvというファイルと読み込みたいとします。このtest.csvが.pyファイルと同じフォルダにある場合には、pandasでデータを読み込む場合には、
data = pd.read_csv('test.csv')という感じで書くだけで問題ありません。
ちょっとフォルダの構造をかっこよくする場合には、.pyファイルがあるフォルダにさらに、”data”というフォルダをさらに作ったケースを想定します。その場合には書き方がちょっと変わって、data = pd.read_csv('data/test.csv')という書きます。
この"/"で区切られるものはファイルパスと呼ばれるもので、プログラムにそのファイルの場所を教えるための住所みたいなものです。今回のケースは相対パスと呼ばれているものであり、今回のケースでいうと.pyファイルの場所から見てそのファイルがどこにあるかという感じの見方になります。
絶対パスと相対パスの二つの書き方があるが、個人的には相対パスのほうがおすすめ。
一方で絶対パスと呼ばれるものもあります。これは先ほどのいわゆる省略版である相対パスと比べてちょっと長い記載になるものです。例えば適当なファイルを右クリックして「パスのコピー」というの押すと絶対パスをコピーすることができます。
私の環境の適当なファイルのパスをコピーしてみると「"C:\Users\ktrpt\OneDrive\ドキュメント\KTR_project"」こんな感じで取れます。¥マークはpythonで書くときには/に書き換えます。なので最終的にpythonで絶対パスで書く場合にはこんな感じです。
data = pd.read_csv('C:/Users/ktrpt/OneDrive/ドキュメント/KTR_project/test_program/data/test.csv')
今回のケースではドキュメント直下のKTR_projectの中のtest_programの中にある.pyファイルのコードを動かす想定になります。
絶対パスでプログラムを書いた場合には、フォルダの場所が変わったり、パソコン自体の場所が変わってしまったらそこの部分の書き直しが必要になるので、個人的にはあまりお勧めできない感じです。特に断りがない場合には相対パスで書いてしまうのがよいかなと思っています。
次回の記事では、実際にフォルダの中のデータを読み込んで、その読み込んだデータがどんな風に格納されているのかを確認する方法について紹介できればと思っています。