我正在处理一个大型 csv 文件(超过 4GB)。
所以我必须处理 pandas block (泄漏内存)
但我不知道如何描述整个数据(计数,最小值,最大值,百分位数,...)。
请就这个问题给我一些建议
非常感谢。
最佳答案
假设您有一个 csv 文件,您可以执行以下操作:
import pandas as pd
nr_chunk_size = 10
summary = []
df = pd.read_csv('your_file.csv', iterator=True, chunksize=nr_chunk_size)
for chunck in df:
summary.append(chunck.describe().values)
然后,您需要聚合摘要
列表。计数应该很简单,您只需总结一下即可,例如,
count = sum([summary[i][0][0] for i in range(len(summary))])
,对于最小值和最大值,您需要创建所有数字的列表并取最小数字,
minimum = min([summary[i][3][0] for i in range(len(summary))])
maximum = max([summary[i][7][0] for i in range(len(summary))])
对于百分位数,这有点困难,因为您没有将整个数据集纳入其中。您可以只取百分位数的平均值,这是一个近似值。
关于pandas - 如何在pandas中调用带有 block 的描述函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915019/