如何使用 python pandas 从 docker 容器访问 CSV 文件(位于 pc hdd 中)?

How to access CSV file (located in pc hdd) from a docker container with python pandas?

我想实现一种机器学习算法,该算法可以使用 PySEAL 库对同态数据进行操作。 PySEAL 库作为 docker 容器发布,带有 'examples.py' 文件,其中显示了一些同态加密示例。我想编辑 'examples.py' 文件来实现 ML 算法。我试图以这种方式导入 CSV 文件 -

dataset = pd.read_csv ('Dataset.csv')

我已成功导入 pandas 库。我尝试了很多方法来导入 CSV 文件但都失败了。如何导入?

我是 Docker 的新手。详细的过程真的很有帮助。

您可以通过 Docker 构建过程(假设您是创建映像的人)或通过容器在运行时访问的卷映射来完成。

内使用 Dataset.csv 构建源代码

要通过构建进行访问,您可以执行 Docker 复制命令以在容器的工作空间中获取文件

FROM 3.7

COPY /Dataset.csv /app/Dataset.csv
...

然后您可以使用 pandas.read_csv() 函数从容器中通过 /app/Dataset.csv 直接访问文件,例如 -

data=pandas.read_csv('/app/Dataset.csv')

Dataset.csv

的映射卷份额

如果您无法直接控制源图像的创建,或者不希望将数据集与容器打包在一起(这可能是最佳做法,具体取决于用例)。您可以在启动容器时通过卷映射共享它:

dataset = pd.read_csv ('app/Dataset.csv')

假设您的 Dataset.csv 在 my/user/dir/Dataset.csv

来自 CLI:

docker run -v my/user/dir:app my-python-container

后一种解决方案的好处是您可以继续在您的主机上编辑文件 'Dataset.csv',并且该文件将反映您所做的更改或 python 过程应该发生。