pandas - 如何在pandas中调用带有 block 的描述函数?

标签 pandas large-files

我正在处理一个大型 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/

相关文章:

python - 使用作为字符串一部分的整数迭代 for 循环

python - 从两列创建一个矩阵

java - 使用 Liferay 上传大文件(GB 数据)

c# - 在 C# 中为大文件创建校验和的最快方法是什么

java - 如何让 Java 使用 Scanner 读取非常大的文件?

python - 考虑行和标题从数据框中选择值

python - 如何将 datetime.time() 对象转换为 datetime.datetime 对象 pandas

python - 在python中定位两条轨迹的交点

Android Large PNG 不显示问题

database - 部分堆排序以在 5GB 文件中找到 k 个最频繁出现的单词