Python Dask日期时间优化

Python Dask日期时间优化,python,datetime,dask,Python,Datetime,Dask,我想知道如何优化此转换,我需要计算1.25亿行的星期几,我有一台具有4 GB RAM的计算机,我正在尝试以下方法: df_train['date'].dt.dayofweek.compute() 我的电脑上有Ubuntu16.04和Intel Core 2 Duo E7200@2.5 GHz,现在已经冻结了,我需要重新启动它 有什么办法可以优化它吗?您的数据集大小约为1GB(125M行,每个8字节)。愚蠢的是,dayofweek返回一个int64(8字节)。因此,在执行此计算时,将使用至少2G

我想知道如何优化此转换,我需要计算1.25亿行的星期几,我有一台具有4 GB RAM的计算机,我正在尝试以下方法:

df_train['date'].dt.dayofweek.compute()
我的电脑上有Ubuntu16.04和Intel Core 2 Duo E7200@2.5 GHz,现在已经冻结了,我需要重新启动它


有什么办法可以优化它吗?

您的数据集大小约为1GB(125M行,每个8字节)。愚蠢的是,
dayofweek
返回一个int64(8字节)。因此,在执行此计算时,将使用至少2GB的内存(加上一些较小的开销)

现在还不清楚,在这么小的计算机上,你怎么能用这么多的数据在内存中做有意义的工作。我建议将数据分成几个块(例如10块),将这些块保存到磁盘,然后一次加载并操作一个块。一次100 MB的输入数据足以让处理器内核(和内存)保持忙碌


另一个想法是:如果你有很多重复的日期(当然你必须这样做),创建一个由唯一日期索引的系列,其值为
dayofweek.astype('i1')
。这将是一种更简洁的方式来表示相同的信息(是否实用取决于您进一步处理的细节,我们不知道)。

如果您的计算机由于内存问题而冻结,您是否考虑过将一周中的每一天逐行输出到文件(例如csv或hdf5)?这应该有最小的内存开销。