【发布时间】:2018-08-24 16:13:21
【问题描述】:
我已经通过
打开了 csv 文件 (600mb)df=pd.read_csv(file)
它很大,所以我减少了内存使用量:
它适用于 Jupter Notebook 并显示:
我改变了类型:
float64 ---> float32,
object ----> category,
int ------> uint16, uint8,
像这样(例如对象):
converted_obj = pd.DataFrame()
for col in df_obj.columns:
num_unique_values = len(df_obj[col].unique())
num_total_values = len(df_obj[col])
if num_unique_values / num_total_values < 0.5:
converted_obj.loc[:,col] = df_obj[col].astype('category')
else:
converted_obj.loc[:,col] = df_obj[col]
optimized_df[converted_obj.columns] = converted_obj
optimized_df.info()
现在,我想将缩减的 DataFrame 导出到 csv,但在我这样做之后,文件大小增加到超过 800mb(之前 - 600mb)。当我将新文件读取到 Jupyter Notebook 时,dtypes 与减少之前相同,并且与内存使用量(1,6 GB+)相同。我究竟做错了什么 ?如何提取减少的 csv ?提前致谢。
【问题讨论】:
-
文字和数字不要使用图片。
-
你试过导出到
csv.gz吗?
标签: python pandas csv types data-science