【发布时间】:2016-10-01 07:02:59
【问题描述】:
我将 Pandas 数据框大数据框加载到内存中。 尝试更有效地利用内存。
出于这个目的,我不会使用这个数据帧,因为我会从这个数据帧中获取子集,只有我感兴趣的行是:
DF = pd.read_csv("Test.csv")
DF = DF[DF['A'] == 'Y']
已经尝试过这个解决方案,但不确定它是否最有效。 上述解决方案对内存使用最有效吗? 请指教。
【问题讨论】:
我将 Pandas 数据框大数据框加载到内存中。 尝试更有效地利用内存。
出于这个目的,我不会使用这个数据帧,因为我会从这个数据帧中获取子集,只有我感兴趣的行是:
DF = pd.read_csv("Test.csv")
DF = DF[DF['A'] == 'Y']
已经尝试过这个解决方案,但不确定它是否最有效。 上述解决方案对内存使用最有效吗? 请指教。
【问题讨论】:
您可以尝试以下技巧(如果您可以将整个 CSV 文件读入内存):
DF = pd.read_csv("Test.csv").query("A == 'Y'")
或者,您可以使用 read_csv() 分块读取数据
但我强烈建议您将数据保存为 HDF5 表格格式(您可能还想对其进行压缩) - 然后您可以使用 read_hdf() 函数中的 where 参数有条件地读取数据。
例如:
df = pd.read_hdf('/path/to/my_storage.h5', 'my_data', where="A == 'Y'")
Here您可以找到一些示例以及不同存储选项的使用比较
【讨论】: