Docker中的Pandas iterrows()太慢

时间:2018-12-20 13:45:15

标签: python python-3.x pandas docker

我正在遍历存储在泊坞窗中的csv文件。我想遍历行。我本地(w / o docker)中的相同脚本在6分钟内执行完,但是在docker内部时,读取20行需要一两分钟(有130万行)。正在读取的csv文件大小为837MB

代码如下:

character-literal:
     encoding-prefix opt ' c-char-sequence '

2 个答案:

答案 0 :(得分:0)

为什么要使用循环行?看来可以将其向量化:

df["eventual_ppac_code"] = df["omc_dist_master_PPAC District Code"]
df.loc[df["omc_dist_master_PPAC District Code"] != df["omc_dist_master_PPAC District Code"], "eventual_ppac_code"] = df["consumer_id_name_ppac_code"]

话虽如此,您究竟何时期望omc_dist_master_PPAC District Code 等于omc_dist_master_PPAC District Code?是同一列吗?

答案 1 :(得分:0)

docker == ubuntu系统的基本前提是我所遇到的逻辑谬误。是的,尽可能地优化代码是正确的,但是两个系统中的相同代码显示出不同的统计信息,而docker速度很慢。话虽如此,我开始使用chunksize来减轻内存负担。具有如此大数据的(读和写)上下文切换是使docker变慢(尤其是写操作)的原因。应当注意,内存不是问题,通过docker在持久性存储中写入大数据比在我们的系统中慢。