内存优化——使用pandas读取千万级数据

内存优化——使用pandas读取千万级数据

超级干货:Python优化之使用pandas读取千万级数据

环境:Linux-cenos5

processor : 31

model : 62

model name : Intel(R) Xeon(R) CPU E5-2640 v2 @ 2.00GHz

cpu MHz : 2000.066

cache size : 20480 KB

memory : 125G

在如上所述的单机环境中,使用一些优化可以使基于pandas数据格式的模型训练数据容量由600W增长为至少2000W,训练时间减少为1/5。具体方案如下:

数据读取优化

数据量4200W行,193列,每列存储为string类型的单精度浮点数,文件表由csv格式存储,总大小16GB+。通过如下语句读取到dataframe中去:

1

2

df_train = pd.read_csv(path,header=None,sep=',',nrows=40000000,error_bad_lines=False,delimiter="\t",lineterminator="\n",keep_default_na=True)

经过测试,当nrows读取行数超过800W条时,df_train占内存超过80G,在后续的步骤中涉及到切片和数据集复制时会直接崩溃,超过1200W条时会直接无法读取。首先考虑优化读取方式:

1

2

3

4

5

6

7

8

9

10

na_vals = ["\\N"," ","","NULL"]

df_tmp = []

df_train = pd.DataFrame(index=

更多创意

锦绣未央剧情介绍
Bet—288365

锦绣未央剧情介绍

📅 09-04 🔥 4540
多媒体制作专业学什么,毕业只能做视频剪辑吗?
堕夜精灵声望怎么快速到崇拜
Bet—288365

堕夜精灵声望怎么快速到崇拜

📅 07-08 🔥 703