【问题标题】:Python Pandas memory - subsetting and releasing main data framePython Pandas 内存 - 子集和释放主数据帧
【发布时间】:2016-10-01 07:02:59
【问题描述】:

我将 Pandas 数据框大数据框加载到内存中。 尝试更有效地利用内存。

出于这个目的,我不会使用这个数据帧,因为我会从这个数据帧中获取子集,只有我感兴趣的行是:

DF = pd.read_csv("Test.csv")
DF = DF[DF['A'] == 'Y']

已经尝试过这个解决方案,但不确定它是否最有效。 上述解决方案对内存使用最有效吗? 请指教。

【问题讨论】:

    标签: python r pandas memory


    【解决方案1】:

    您可以尝试以下技巧(如果您可以将整个 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您可以找到一些示例以及不同存储选项的使用比较

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 2016-06-17
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多