web-dev-qa-db-ja.com

相対パスを使用してpandasでdata_folderのファイルを開く方法は?

私はpandasを使用しており、csvファイルを読み込む必要があります。構造は次のようになります。

folder/folder2/scripts_folder/script.py

folder/folder2/data_folder/data.csv

data.csvのスクリプトからscripts_folderファイルを開くにはどうすればよいですか?

私はこれを試しました:

absolute_path = os.path.abspath(os.path.dirname('data.csv'))

pandas.read_csv(absolute_path + '/data.csv')

私はこのエラーを受け取ります:

File folder/folder2/data_folder/data.csv does not exist

試して

import pandas as pd
pd.read_csv("../data_folder/data.csv")
27
SPKoder

パンダは、現在のpythonファイルがある場所から検索を開始します。したがって、現在のディレクトリから「..」を使用してデータがある場所に移動できます。次に例を示します。

pd.read_csv('../../../data_folder/data.csv')

3レベル上に移動してからdata_folderに移動します(存在すると仮定)または

pd.read_csv('data_folder/data.csv')

data_folderが.pyファイルと同じディレクトリにあると仮定します。

17
ksooklall

Windows以外のユーザーの場合:

import pandas as pd
import os

os.chdir("../data_folder")
df = pd.read_csv("data.csv")

Windowsユーザーの場合:

import pandas as pd

df = pd.read_csv(r"C:\data_folder\data.csv")

上記の場所にあるプレフィックスrは、pandasデータフレームに場所を指定する際の時間を節約します。

6
MD Rijwan

__file__属性を使用できます:

import os
import pandas as pd
df = pd.read_csv(os.path.join(os.path.dirname(__file__), "../data_folder/data.csv"))
6
norman_h
# script.py
current_file = os.path.abspath(os.path.dirname(__file__)) #older/folder2/scripts_folder

#csv_filename
csv_filename = os.path.join(current_file, '../data_folder/data.csv')
3
CodeIsLife
import pandas as pd
df = pd.read_csv('C:/data_folder/data.csv')
0
Rajesh Nair