首页 > 解决方案 > 使用用户定义的索引读取 pandas DataFrame

问题描述

我有一个 Pandas DataFrame,需要分块处理,因为文件很大,需要完全加载到 RAM 中。

为此,我使用了以下代码:

chunk = pd.read_csv("file_name.csv", chunksize=5000)

type(chunk)
# pandas.io.parsers.TextFileReader

for c in chunk:
    print("chunk indices: {0}".format(c.index))

这给出了以下输出-

块索引: RangeIndex(start=0, stop=5000, step=1)

块索引: RangeIndex(start=5000, stop=10000, step=1)

块索引: RangeIndex(start=10000, stop=15000, step=1)

块索引: RangeIndex(start=15000, stop=20000, step=1)

块索引: RangeIndex(start=20000, stop=25000, step=1)

块索引: RangeIndex(start=25000, stop=30000, step=1)

块索引: RangeIndex(start=30000, stop=35000, step=1)

块索引: RangeIndex(start=35000, stop=40000, step=1)

块索引: RangeIndex(start=40000, stop=45000, step=1)

块索引: RangeIndex(start=45000, stop=45300, step=1)

但是,我希望在两个连续的块之间,用户定义的行应该有重叠。

例如,如果“重叠”参数 = 50,那么第一个块应该从 1 到 5000,第二个块应该从 (5000 - 50) 4950 到 10000,第三个块应该从 9950 (10000 - 50) 开始) 到 15000,第四个块应该从 14500 (15000 - 50) 到 20000 等等。

我怎样才能实现这一目标?

谢谢!

标签: pythonpandas

解决方案


推荐阅读