如何在docker容器中使用熊猫读取csv文件

时间:2019-01-10 06:27:46

标签: python docker

我试图将我用python编写的机器学习模型码头化。 python脚本包括使用熊猫加载csv文件。当我在容器中运行映像时,pd.read_csv("FILENAME.csv")命令无法检索csv文件(我认为问题可能是csv文件不在容器中)。有关如何执行此python脚本并在docker上读取csv文件的任何建议。

dockerfile:

FROM python:latest
RUN pip install pandas
RUN pip install numpy
RUN pip install sklearn 
COPY . /app
ENTRYPOINT ["python", "app/model1.py","death_clean.csv","condition_data_clean.csv"]

model1.py

import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

df1=pd.read_csv("/Users/yaoyan/Desktop/docker-trial/condition_data_clean.csv",error_bad_lines=False)
df2=pd.read_csv("/Users/yaoyan/Desktop/docker-trial/death_clean.csv",error_bad_lines=False)

df=pd.merge(df1,df2,on=['person_id'], how='left')

运行它时,出现此错误:

  

FileNotFoundError:文件b'/ Users / yaoyan / Desktop / docker-trial / condition_data_clean.csv'不存在

1 个答案:

答案 0 :(得分:1)

您应该使用docker volume命令创建一个包含数据的卷。完成此步骤后,您需要使用-v中的docker run选项挂载此存储,例如-v my_data_volum:/data。最后,在Python脚本中适当地更改路径,在这种情况下为/data/my_csv.csv。在documentation中有更多信息。

或者,如果您坚持要复制文件,请在熊猫的/app/condition_data_clean.csv函数中使用路径read_csv