【发布时间】:2019-09-27 11:57:34
【问题描述】:
我需要将一个大型数据集导入 pandas 数据框,以便进行一些数据操作。
我发现这样做的好方法是:
- 使用分块以分块的形式加载和处理数据帧。分解任务,分别处理不同的部分,然后将它们组合起来。
如果我定义我的块大小等于 1000:
pd.read_sql_query(sql=query, con=engine, chunksize=1000)
循环的每次迭代都会将 1000 行读入一个数据帧。
但是,我的数据框有一个 DATE 列,我需要确保每个块都包含每个产品(SKU 列)的整个时间序列(DATE 列)。
DATE STORE COD SKU UNITS_SOLD
2018-02-01 HD01 CD 70 539.000
2018-03-01 HD01 CD 70 511.000
2018-04-01 HD01 CD 70 468.000
2018-05-01 HD01 CD 70 447.000
2018-06-01 HD01 CD 70 382.000
2018-07-01 HD01 CD 70 348.000
2018-02-01 HA01 CD 80 539.000
2018-03-01 HA01 CD 80 511.000
2018-04-01 HA01 CD 80 468.000
2018-05-01 HA01 CD 80 447.000
2018-06-01 HA01 CD 80 382.000
2018-07-01 HA01 CD 80 348.000
确保每个块都返回整个产品历史记录的最佳方法是什么? 如果这 1000 行中有一个产品不完整,我想避免分成 2 个块。
【问题讨论】:
-
您能否澄清您的整个产品历史/整个时间序列/不完整的产品?
-
我认为一个选项可能是,将不完整产品的行保存到下一个块之前
-
嗨@RomanPerekhrest,为了执行一些操作,我需要按日期对产品进行分组。如果我在 2 个不同的块中有相同的产品,我不能这样做。