我正在使用pandas编写Python代码,该pandas将打开.csv文件并读取一些参数,这些参数稍后将用作另一个模块的输入。沿着代码必须读取的参数,我的内部网络中存在其他.csv文件的位置(路径),这些文件包含必须稍后合并到最终输出的数据。我的问题是打开那些文件;除非我明确定义了路径(而不是使用允许我循环遍历我最终代码所需的所有.csv文件的引用变量),我得到ValuError:无效的文件路径或缓冲区对象类型:。
我尝试在路径中添加单引号和双引号,但这没有帮助。有人可以帮我弄清楚我做错了吗?
以下是我的代码,希望有助于澄清问题。
提前感谢您的帮助!
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"]
下一个单元格
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
下一个单元格
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
下一个单元格
#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'>
下一个单元格
#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
我希望自己明白,如果不是这样,请告诉我,我会尝试更详细地解释这个问题。
RGDS,
Pegaso的
答案 0 :(得分:0)
不确定原因,但问题出在这行代码中:
Root_path = c_input_df.loc["HF Modeling folder full path"]
如果我使用方法astype(str).Parameters
root_path = c_input_df.loc["HF Modeling folder abs path"].astype(str).Parameters
我得到了我正在寻找的结果,只是字符串,让我们看看:
在:
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
...当我在最后添加参数时
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/
我的问题已经解决,但我想更好地了解从数据框导入数据时这种行为的原因。
RGDS,
Pegaso的