python - 使用用户定义的索引读取 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 等等。
我怎样才能实现这一目标?
谢谢!
解决方案
推荐阅读
- asp.net-core - 在后端调用 API 时基于远程 IP 地址的 IP 速率限制
- python - 如何将带有元组 (x, y) 键的字典转换为矩阵或列表列表
- c# - playfab 排行榜的问题
- loops - 在golang中循环动态嵌套结构
- angular - TypeError: data is not iterable ,在嵌套数组上使用 ngfor
- visual-studio - UDMF 驱动程序:visual studio 2019:项目属性中没有“部署”选项
- sql - 需要根据原始购买渠道来隔离全渠道客户 - SQL
- python - 如何将具有不同日期格式的 Pandas 列从对象转换为 Datetime 类型?
- apache-spark - 当 --deploy-mode 为集群时,“ImportError: No module named sklearn”
- c++ - 'Car' 的复制构造函数被隐式删除,因为变量字段 'fuelType' 具有非平凡的复制构造函数