web-dev-qa-db-fra.com

Comment ouvrir mes fichiers dans data_folder avec pandas en utilisant un chemin relatif?

Je travaille avec pandas et j'ai besoin de lire certains fichiers CSV, la structure ressemble à ceci:

folder/folder2/scripts_folder/script.py

folder/folder2/data_folder/data.csv

Comment puis-je ouvrir le data.csv fichier du script dans scripts_folder?

J'ai essayé ceci:

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

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

Je reçois cette erreur:

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

Essayer

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

Les pandas commenceront à chercher d'où se trouve votre fichier python actuel). Par conséquent, vous pouvez passer de votre répertoire actuel à l'emplacement où se trouvent vos données avec '..'. Par exemple:

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

Va monter de 3 niveaux et ensuite dans un dossier de données (en supposant que ce soit là) ou

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

en supposant que votre dossier de données se trouve dans le même répertoire que votre fichier .py.

17
ksooklall

Pour les utilisateurs non-Windows:

import pandas as pd
import os

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

Pour les utilisateurs Windows:

import pandas as pd

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

Le préfixe r dans l'emplacement ci-dessus permet de gagner du temps lorsque vous attribuez l'emplacement au pandas Dataframe.

6
MD Rijwan

Vous pouvez utiliser le __file__ attribut:

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