gpt4 book ai didi

python - 在 read_csv 上加载和应用函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:54 24 4
gpt4 key购买 nike

我正在尝试在我的计算机上加载一个 .csv 大小为 4 GB,其中包含 1.25 亿行 和 5 种类型的数据,这些数据具有以下特征:

  • CPU:Intel Core 2 Duo E7200 @ 2.53 GHz
  • 内存:8 GB DDR3 @ 1833 MHz
  • 高清:500 GB 7200 rpm
  • 操作系统:Ubuntu 16.04

当我运行这段代码时:

import dask.dataframe as dd
import numpy as np

dtypes = {'item_nbr':'int32', 'store_nbr':'int8', 'onpromotion':'bool' }
df_train = dd.read_csv('data/train.csv', dtype=dtypes, parse_dates=["date"],
converters={'unit_sales': lambda u: np.log1p(float(u)) if float(u) > 0 else 0},
usecols=[1, 2, 3, 4, 5]).compute()

我的电脑死机了,我需要重新启动它,这个问题有什么解决办法吗?

谢谢!

版本:

目前我正在尝试运行:df_train.unit_sales.map_partitions(np.log1p).compute()而我的 PC 仍然卡住,那么,如何在不卡住我的 PC 的情况下计算所有 1.25 亿行的对数?以及,如何检查调用计算是否安全?

最佳答案

如评论中所述,当您在 dask 数据帧上调用 .compute() 时,您是在说“我现在完成了,请将其转换为 pandas 对象”

在您的情况下,您可能不想立即执行此操作,您希望在执行其他查询、聚合等之后执行此操作。

不好

df = dd.read_csv('lots-of-data-*.csv')
df = df.compute() # this is very large and may not fit in memory

很好

df = dd.read_csv('lots-of-data-*.csv')
df = df[df.value > 0]
result = df.groupby('name').value.mean()
result = result.compute() # this is probably much smaller

关于python - 在 read_csv 上加载和应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49196780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com