我正在使用大型 Pandas DataFrame 并使用 进行时间序列交叉验证。在每次迭代期间,我根据不同的日期范围将 DataFrame 拆分为三个单独的数据集。由于内存限制,我希望这三个数据集都是原始 DataFrame 的视图/引用,而不是内存密集型副本。
我遇到过各种 pandas 函数(例如使用
iloc
),它们假设创建 DataFrame 的视图。当我尝试将这些视图存储为类的属性或命名元组的字段时,我的挑战就出现了。根据我的理解,在某些情况下,Python 可能最终会将 DataFrame 的副本存储为属性,这可能会加剧我的内存问题。
就 Python 将对象存储为属性时的行为而言,Python 本身不控制 DataFrame 是存储为视图还是副本。该行为取决于 Pandas 的实现和您执行的操作。将通过 .iloc 获得的 DataFrame 切片存储为属性通常应该会产生内存高效的视图。