2017-10-15 5 views
1

J'écris un code Python en utilisant des pandas qui vont ouvrir un fichier .csv et lire certains paramètres qui seront utilisés plus tard en entrée pour un autre module. Le long des paramètres que le code doit lire, il existe des emplacements (chemins) d'autres fichiers .csv dans mon réseau interne qui contiennent des données qui doivent être incorporées ultérieurement à la sortie finale. Mon problème est l'ouverture de ces fichiers; sauf si je définis explicitement le chemin (au lieu d'utiliser une variable de référence qui me permettra de boucler tous les fichiers .csv dont mon code final a besoin), j'obtiens le ValuError: Chemin de fichier invalide ou type d'objet tampon:.Problèmes ouvrant un chemin en Python

J'ai essayé d'ajouter des guillemets simples et doubles aux chemins, mais cela n'a pas aidé. Quelqu'un peut-il m'aider à comprendre ce que je fais de mal?

Ci-dessous sont des morceaux de mon code qui, espérons, aideront à clarifier le problème.

Merci d'avance pour votre aide!

Root_path = c_input_df.loc["HF Modeling folder full path"] 
Input_path = Root_path + c_input_df.loc["FO_Input_Files folder name & location"] 

cellule suivante

Input_path 
Parameters C:/Users/Pegaso/AnacondaProjects/2.-SuperFO/2.Projects/Client_ABC/Internal Data/HF Modeling/FO_Input_Files/1.-Model_13102017/UNI-09_original/ 
dtype: object 

cellule suivante

well_name 
Parameters 'UNI-09' 
Name: Well name, dtype: object 
#those two strings (Input path and well_name) are used to tell the path and part of the name of the .csv file to open 

cellule suivante

#This is the prefered method to read the dataframe: 
FT_file = pd.read_csv(Input_path + "FT-" + well_name + ".csv") 
#But it gives the following error: 
ValueError: Invalid file path or buffer object type: <class 'pandas.core.series.Series'> 

cellule suivante

#Since the method above gives an error, I used the explicit path: 
FT_file = Input_path + "FT-" + well_name + ".csv" 
FT_file 
Parameters C:/Users/Pegaso/AnacondaProjects/2.-SuperFO/2.Projects/Client_ABC/Internal Data/HF Modeling/FO_Input_Files/1.-Model_13102017/UNI-09_original/FT-UNI-09.csv 
dtype: object 

#When I try the path directly in the pd.read_csv function, it reads the file 
FT_file = pd.read_csv("C:/Users/Pegaso/AnacondaProjects/2.-SuperFO/2.Projects/Client_ABC/Internal Data/HF Modeling/FO_Input_Files/1.-Model_13102017/UNI-09_original/FT-UNI-09.csv") 
FT_file 
Par_1 Par_2 Par_3 
0 Units_1 Units_2 Units_3 
1 6630 2448.270301 3659.999055 
2 6647.99982 2448.270301 3659.999055 

J'espère que je me suis fait comprendre, si ce n'est pas le cas, s'il vous plaît faites le moi savoir et je vais essayer d'expliquer le problème plus en détail.

Mfg,

Pegaso

Répondre

0

Je ne sais pas encore pourquoi, mais le problème était dans cette ligne de code:

Root_path = c_input_df.loc["HF Modeling folder full path"] 

Si j'utilise la méthode astype (str) .parameters

root_path = c_input_df.loc["HF Modeling folder abs path"].astype(str).Parameters 

Je reçois le résultat que je cherchais, juste la chaîne, voyons:

Avant:

root_path = c_input_df.loc["HF Modeling folder abs path"] #.astype(str).Parameters 
    print root_path 

Parameters L:/Data/Jose/2.-SuperFO_testing/1612-02_University_9-319H_FleurDeLis/Internal Data/HF Modeling/ 
Name: HF Modeling folder abs path, dtype: object 

... et quand j'ajouter les paramètres à la fin

root_path = c_input_df.loc["HF Modeling folder abs path"] .astype(str).Parameters 
    print root_path 

L:/Data/Jose/2.-SuperFO_testing/1612-02_University_9-319H_FleurDeLis/Internal Data/HF Modeling/ 

Je suis mon problème résolu, mais je voudrais mieux comprendre pourquoi ce comportement lorsque l'importation de données à partir de données.

Mfg,

Pegaso