Pandas数据集的分块读取的实现

目录
  • 一、直接用分块方式读取数据集文件(更直接)
  • 二、先将数据集读取为可迭代对象,再分块读取(更灵活)
  • 总结

所谓“分块”,顾名思义,就是将数据集分成几块进行读取,比如有105条数据,一次读取10条,读取11次才能全部读完。以下提供两种分块读取的方法,两种方法各有优劣。

一、直接用分块方式读取数据集文件(更直接)

分块读取数据集文件是指用read_xxx()方法读取存储数据的文件时采用分块的方式,这里以.csv文件为例,在read_csv()中加入chunksize参数即可实现分块读取:

reader = pd.read_csv('某招聘网站数据.csv', usecols = ['positionId', 'companyId', 'positionName', 'skillLables'],
                     chunksize=10)

此时,返回的reader不是DataFrame,而是一个可迭代对象(iteration),需要注意的是,这个可迭代对象不能用下标访问。 下面遍历这个对象:

for r in reader:
    print(r)

遍历结果如下图所示:

这种分块读取方式比较直接,但是由于一开始就定义了分块大小,后续处理起来不够灵活。因此提供了第二种读取方法。

二、先将数据集读取为可迭代对象,再分块读取(更灵活)

这种方法将数据集文件读取为时可迭代对象不定义分块,用分块的方式读取read_csv()方法返回的可迭代对象。实现第一步要在read_csv()方法中指定参数iterator为True:

reader = pd.read_csv('某招聘网站数据.csv', usecols = ['positionId', 'companyId', 'positionName'],
                    iterator=True)

以下是用分块方式遍历reader,注意使用到的get_chunk()方法和里面的参数,参数定义分块大小,可以灵活调节:

while True:
    try:
        print(reader.get_chunk(10))
    except StopIteration:
        break

总结

综上所述,两种方法都能用pandas实现数据的分块读取,对于数据量较大的数据集还是比较实用的。两种方法的优劣体现在直接性和灵活性上,可以根据实际需求自行选择。

到此这篇关于Pandas数据集的分块读取的实现的文章就介绍到这了,更多相关Pandas数据集分块读取内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 用pandas划分数据集实现训练集和测试集

    1.使用model_select子模块中的train_test_split函数进行划分 数据:使用kaggle上Titanic数据集 划分方法:随机划分 # 导入pandas模块,sklearn中model_select模块 import pandas as pd from sklearn.model_select import train_test_split # 读取数据 data = pd.read_csv('.../titanic_dataset/train.csv') # 将特征划分到

  • Pandas 按索引合并数据集的方法

    如下所示: import numpy as np import pandas as pd from pandas import Series,DataFrame 一.merge函数 left1 = DataFrame({'水果':['苹果','梨','草莓'], '价格':[3,4,5], '数量':[9,8,7]}).set_index('水果') right1 = DataFrame({'水果':['苹果','草莓'], '产地':['美国','中国']}) print(left1) pri

  • python Pandas如何对数据集随机抽样

    摘要:有时候我们只需要数据集中的一部分,并不需要全部的数据.这个时候我们就要对数据集进行随机的抽样.pandas中自带有抽样的方法. 应用场景: 我有10W行数据,每一行都11列的属性. 现在,我们只需要随机抽取其中的2W行. 实现方法很简单: 利用Pandas库中的sample. DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None) n是要抽取的行数.(例如n

  • 利用pandas读取中文数据集的方法

    直接利用numpy读取非数字型的数据集时需要先进行转换,而且python3在处理中文数据方面确实比较蛋疼.最近在学习周志华老师的那本西瓜书,需要没事和一堆西瓜反复较劲,之前进行联系的时候都是利用批量替换先清理一遍数据,不过这样实在是太麻烦了,今天偶然发现可以使用pandas来实现读取中文数据集的功能. 首先分享一下数据集: 编号,色泽,根蒂,敲声,纹理,脐部,触感,密度,含糖率,好瓜 1,青绿,蜷缩,浊响,清晰,凹陷,硬滑,0.697,0.46,是 2,乌黑,蜷缩,沉闷,清晰,凹陷,硬滑,0.7

  • 详解pandas如何去掉、过滤数据集中的某些值或者某些行?

    摘要在进行数据分析与清理中,我们可能常常需要在数据集中去掉某些异常值.具体来说,看看下面的例子. 0.导入我们需要使用的包 import pandas as pd pandas是很常用的数据分析,数据处理的包.anaconda已经有这个包了,纯净版python的可以自行pip安装. 1.去掉某些具体值 数据集df中,对于属性appPlatform(最后一列),我们想删除掉取值为2的那些样本.如何做?非常简单. import pandas as pd df[(True-df['appPlatfor

  • pandas分批读取大数据集教程

    如果你的电脑内存较小那么想在本地做一些事情是很有局限性的(哭丧脸),比如想拿一个kaggle上面的竞赛来练练手,你会发现多数训练数据集都是大几G或者几十G的,自己那小破电脑根本跑不起来.行,你有8000w条样本你牛逼,我就取400w条出来跑跑总行了吧(狡滑脸). 下图是2015年kaggle上一个CTR预估比赛的数据集: 看到train了吧,原始数据集6个G,特征工程后得多大?那我就取400w出来train.为了节省时间和完整介绍分批读入数据的功能,这里以test数据集为例演示.其实就是使用pa

  • python:pandas合并csv文件的方法(图书数据集成)

    数据集成:将不同表的数据通过主键进行连接起来,方便对数据进行整体的分析. 两张表:ReaderInformation.csv,ReaderRentRecode.csv ReaderInformation.csv: ReaderRentRecode.csv: pandas读取csv文件,并进行csv文件合并处理: # -*- coding:utf-8 -*- import csv as csv import numpy as np # ------------- # csv读取表格数据 # ---

  • pandas数据集的端到端处理

    1. 数据集基本信息 df = pd.read_csv() df.head():前五行: df.info(): rangeindex:行索引: data columns:列索引: dtypes:各个列的类型, 主体部分是各个列值的情况,比如可判断是否存在 NaN 值: 对于非数值型的属性列 df['some_categorical_columns'].value_counts():取值分布: df.describe(): 各个列的基本统计信息 count mean std min/max 25%

  • Pandas数据集的分块读取的实现

    目录 一.直接用分块方式读取数据集文件(更直接) 二.先将数据集读取为可迭代对象,再分块读取(更灵活) 总结 所谓“分块”,顾名思义,就是将数据集分成几块进行读取,比如有105条数据,一次读取10条,读取11次才能全部读完.以下提供两种分块读取的方法,两种方法各有优劣. 一.直接用分块方式读取数据集文件(更直接) 分块读取数据集文件是指用read_xxx()方法读取存储数据的文件时采用分块的方式,这里以.csv文件为例,在read_csv()中加入chunksize参数即可实现分块读取: rea

  • Python多进程分块读取超大文件的方法

    本文实例讲述了Python多进程分块读取超大文件的方法.分享给大家供大家参考,具体如下: 读取超大的文本文件,使用多进程分块读取,将每一块单独输出成文件 # -*- coding: GBK -*- import urlparse import datetime import os from multiprocessing import Process,Queue,Array,RLock """ 多进程分块读取文件 """ WORKERS = 4

  • python多线程分块读取文件

    本文实例为大家分享了python多线程分块读取文件的具体代码,供大家参考,具体内容如下 # _*_coding:utf-8_*_ import time, threading, ConfigParser ''' Reader类,继承threading.Thread @__init__方法初始化 @run方法实现了读文件的操作 ''' class Reader(threading.Thread): def __init__(self, file_name, start_pos, end_pos):

  • Python 多线程不加锁分块读取文件的方法

    多线程读取或写入,一般会涉及到同步的问题,否则产生的结果是无法预期的.那么在读取一个文件的时候,我们可以通过加锁,但读不像写操作,会导致文件错误,另外锁操作是有一定的耗时.因此通过文件分块,可以比较有效的解决多线程读问题,之前看到有人写的分块操作,比较复杂,需要实现建立好线程以及所读取块信息,在这里,我提供了一种比较简便的方法,以供参考. #!/user/bin/env python #_*_coding:utf-8_*_ from threading import Thread import

  • python分块读取大数据,避免内存不足的方法

    如下所示: def read_data(file_name): ''' file_name:文件地址 ''' inputfile = open(file_name, 'rb') #可打开含有中文的地址 data = pd.read_csv(inputfile, iterator=True) loop = True chunkSize = 1000 #一千行一块 chunks = [] while loop: try: chunk = dcs.get_chunk(chunkSize) chunks

  • Pandas实现Excel文件读取,增删,打开,保存操作

    目录 前言 一.Pandas 的主要函数包括 二.使用步骤 1.简单示例 2.保存Excel操作 3.删除和添加数据 4.添加新的表单 前言 Pandas 是一种基于 NumPy 的开源数据分析工具,用于处理和分析大量数据.Pandas 模块提供了一组高效的工具,可以轻松地读取.处理和分析各种类型的数据,包括 CSV.Excel.SQL 数据库.JSON 等格式的数据. 一.Pandas 的主要函数包括 pd.read_csv() / pd.read_excel() / pd.read_sql(

  • Pytorch如何加载自己的数据集(使用DataLoader读取Dataset)

    目录 1.Pytorch加载数据集会用到官方整理好的数据集 2.Dataset 3.DataLoader 4.查看数据 5.总结 1.Pytorch加载数据集会用到官方整理好的数据集 很多时候我们需要加载自己的数据集,这时候我们需要使用Dataset和DataLoader Dataset:是被封装进DataLoader里,实现该方法封装自己的数据和标签. DataLoader:被封装入DataLoaderIter里,实现该方法达到数据的划分. 2.Dataset 阅读源码后,我们可以指导,继承该

  • 通过Pandas读取大文件的实例

    当数据文件过大时,由于计算机内存有限,需要对大文件进行分块读取: import pandas as pd f = open('E:/学习相关/Python/数据样例/用户侧数据/test数据.csv') reader = pd.read_csv(f, sep=',', iterator=True) loop = True chunkSize = 100000 chunks = [] while loop: try: chunk = reader.get_chunk(chunkSize) chun

随机推荐