如何用pandas使用相对路径在`data_folder`中打开我的文件?

Lui*_*uez 23 python relative-path pandas

我正在使用pandas并且需要阅读一些csv文件,结构是这样的.

文件夹/文件夹2/scripts_folder/script.py

文件夹/文件夹2/data_folder/data.csv

如何从scripts_folder中的脚本打开data.csv文件?

我试过这个:

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

pandas.read_csv(absolute_path + '/data.csv')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

File folder/folder2/data_folder/data.csv does not exist
Run Code Online (Sandbox Code Playgroud)

SPK*_*der 28

尝试

import pandas as pd
pd.read_csv("../data_folder/data.csv")
Run Code Online (Sandbox Code Playgroud)

  • 为什么我们不指定所有父文件夹? (2认同)
  • 并且还通过使用 os (2认同)
  • 感谢你的回答。当我使用双引号而不是单引号时,问题得到解决。 (2认同)
  • 该解决方案取决于操作系统。如果您打算在不同的操作系统上运行代码,它将失败。使用其他几个成员建议的 os.path.dirname 是一个更可靠的解决方案。 (2认同)

kso*_*all 19

Pandas将开始查看当前python文件所在的位置.因此,您可以使用".."从当前目录移动到数据所在的位置.例如:

pd.read_csv('../../../data_folder/data.csv')
Run Code Online (Sandbox Code Playgroud)

将上升3级然后进入data_folder(假设它在那里)或者

pd.read_csv('data_folder/data.csv')
Run Code Online (Sandbox Code Playgroud)

假设您的data_folder与.py文件位于同一目录中.

  • 谢谢,这是我作为python /机器学习入门者所需的解释! (3认同)

nor*_*n_h 6

您可以使用以下__file__属性:

import os
import pandas as pd
df = pd.read_csv(os.path.join(os.path.dirname(__file__), "../data_folder/data.csv"))
Run Code Online (Sandbox Code Playgroud)


MD *_*wan 6

对于非Windows用户:

import pandas as pd
import os

os.chdir("../data_folder")
df = pd.read_csv("data.csv")
Run Code Online (Sandbox Code Playgroud)

对于Windows用户:

import pandas as pd

df = pd.read_csv(r"C:\data_folder\data.csv")
Run Code Online (Sandbox Code Playgroud)

将位置提供给pandas Dataframe时,上面的位置中的前缀r可以节省时间。


Cod*_*ife 5

# 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')
Run Code Online (Sandbox Code Playgroud)


Nik*_*ris 5

使用f 字符串保持整洁:

import os
import pandas as pd

data_files = '../data_folder/'
csv_name = 'data.csv'

pd.read_csv(f"{data_files}{csv_name}")
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

92282 次

最近记录:

6 年,2 月 前