pandas 能读取多大数据_pandas如何读取data中a b两列数据pandas - CSDN
  • 通过Pandas读取大文件

    2017-11-16 20:42:03
    当数据文件过大时,由于计算机内存有限,需要对大文件进行分块读取

    当数据文件过大时,由于计算机内存有限,需要对大文件进行分块读取:

    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)
            chunks.append(chunk)
        except StopIteration:
            loop = False
            print("Iteration is stopped.")
    df = pd.concat(chunks, ignore_index=True)
    print(df)
    

    read_csv()函数的iterator参数等于True时,表示返回一个TextParser以便逐块读取文件;

    chunkSize表示文件块的大小,用于迭代;

    TextParser类的get_chunk方法用于读取任意大小的文件块;

    StopIteration的异常表示在循环对象穷尽所有元素时报错;

    concat()函数用于将数据做轴向连接:

    pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, Verify_integrity=False)

    常用参数:
    objs:Series,DataFrame或者是Panel构成的序列list;
    axis:需要合并连接的轴,0是行,1是列;
    join:连接的参数,inner或outer;
    ignore=True表示重建索引。

    展开全文
  • 如果你的电脑内存较小那么想在本地做一些事情是很有局限性的(哭丧脸),比如想拿一个kaggle上面的竞赛来练练手,你会发现多数训练数据集都是大几G...看到train了吧,原始数据集6个G,特征工程后得大?那我就取40...

    如果你的电脑内存较小那么想在本地做一些事情是很有局限性的(哭丧脸),比如想拿一个kaggle上面的竞赛来练练手,你会发现多数训练数据集都是大几G或者几十G的,自己那小破电脑根本跑不起来。行,你有8000w条样本你牛逼,我就取400w条出来跑跑总行了吧(狡滑脸)。

    下图是2015年kaggle上一个CTR预估比赛的数据集:

    看到train了吧,原始数据集6个G,特征工程后得多大?那我就取400w出来train。为了节省时间和完整介绍分批读入数据的功能,这里以test数据集为例演示。其实就是使用pandas读取数据集时加入参数chunksize。

    可以通过设置chunksize大小分批读入,也可以设置iterator=True后通过get_chunk选取任意行。

    当然将分批读入的数据合并后就是整个数据集了。

    ok了!

    展开全文
  • 说一下数据大小,这里我的数据大小有一百兆,以前也用传统的方式读取过,没问题,在这次却有点小麻烦,好在换了个方式解决了,希望对你也有用,同时,如果经常读取比较大的文件时,也建议你这样做。 import pandas...

    文件大,读取时结构有时会出现结构错误

    先来正确的方式

    说一下数据大小,这里我的数据大小有一百多兆,以前也用传统的方式读取过,没问题,在这次却有点小麻烦,好在换了个方式解决了,希望对你也有用,同时,如果经常读取比较大的文件时,也建议你这样做。

    import pandas as pd
    
    file_path = open('E:\数据\20190718_20190725.txt', 'r',  encoding='utf-8')
    data = pd.read_table(file_path,header=None,sep=',')
    
    data.drop([0], axis=1, inplace=True)        # 这里删除第一列是因为这一列是多出的索引
    print(data.head())
    save_path = r'E:\数据\CUST_20190718_20190725.txt'
    data.to_csv(save_path, header=None, index=None)
    
    展开全文
  • Pandas 作者 | George Seif 译者 | jojoa 易上手, 文档丰富的Pandas 已经成为时下最火的数据处理库。此外,Pandas数据处理能力也一流。 其实无论你使用什么库,大量的数据处理起来往往回遇到新的挑战。 数据处理时...

    在这里插入图片描述

    原文链接:3 simple ways to handle large data with
    Pandas

    作者 | George Seif
    译者 | jojoa

    易上手, 文档丰富的Pandas 已经成为时下最火的数据处理库。此外,Pandas数据处理能力也一流。

    其实无论你使用什么库,大量的数据处理起来往往回遇到新的挑战。
    数据处理时,往往会遇到没有足够内存(RAM)这个硬件问题。 企业往往需要能够存够数百, 乃至数千 的GB 数据。
    即便你的计算机恰好有足够的内存来存储这些数据, 但是读取数据到硬盘依旧非常耗时。
    别担心! Pandas 数据库会帮我们摆脱这种困境。 这篇文章包含3种方法来减少数据大小,并且加快数据读取速度。 我用这些方法,把超过100GB 的数据, 压缩到了64GB 甚至32GB 的内存大小。

    快来看看这三个妙招吧。

    数据分块

    csv 格式是一种易储存, 易更改并且用户易读取的格式。 pandas 有read_csv ()方法来上传数据,存储为CSV 格式。当遇到CSV 文件过大,导致内存不足的问题该怎么办呢?试试强大的pandas 工具吧!我们先把整个文件拆分成小块。这里,我们把拆分的小块称为chunk。

    一个chunk 就是我们数据的一个小组。 Chunk 的大小主要依据我们内存的大小,自行决定。

    过程如下:

    1.读取一块数据。
    2.分析数据。
    3.保存该块数据的分析结果。
    4.重复1-3步骤,直到所有chunk 分析完毕。
    5.把所有的chunk 合并在一起。

    我们可以通过read_csv()方法Chunksize来完成上述步骤。 Chunksize是指pandas 一次能读取到多少行csv文件。这个当然也是建立在RAM 内存容量的基础上。
    假如我们认为数据呈现高斯分布时, 我们可以在一个chunk 上, 进行数据处理和视觉化, 这样会提高准确率。

    当数据稍微复杂时, 例如呈现泊松分布时, 我们最好能一块块筛选,然后把每一小块整合在一起。 然后再进行分析。很多时候, 我们往往删除太多的不相关列,或者删除有值行。 我们可以在每个chunk 上,删除不相关数据, 然后再把数据整合在一起,最后再进行数据分析。

    代码如下:

    在这里插入图片描述
    删除数据

    有时候, 我们一眼就能看到需要分析的列。事实上, 通常名字,账号等列,我们是不做分析的。

    读取数据前, 先跳过这些无用的列,可以帮我们节省很多内存。 Pandas 可以允许我们选择想要读取的列。

    在这里插入图片描述
    把包含无用信息的列删除掉, 往往给我们节省了大量内存。

    此外,我们还可以把有缺失值的行,或者是包含“NA” 的行删除掉。 通过dropna()方法可以实现:

    在这里插入图片描述
    有几个非常有用的参数,可以传给dropna():

    • how: 可选项:“any”(该行的任意一列如果出现”NA”, 删除该行)
    • “all” (只有某行所有数数据全部是”NA” 时才删除)
    • thresh: 设定某行最多包含多少个NA 时,才进行删除
    • subset: 选定某个子集,进行NA 查找

    可以通过这些参数, 尤其是thresh 和 subset 两个参数可以决定某行是否被删除掉。

    Pandas 在读取信息的时候,无法删除列。但是我们可以在每个chunk 上,进行上述操作。

    为列设定不同的数据类型

    数据科学家新手往往不会对数据类型考虑太多。 当处理数据越来越多时, 就非常有必要考虑数据类型了。

    行业常用的解决方法是从数据文件中,读取数据, 然后一列列设置数据类型。 但当数据量非常大时, 我们往往担心内存空间不够用。

    在CSV 文件中,例如某列是浮点数, 它往往会占据更多的存储空间。 例如, 当我们下载数据来预测股票信息时, 价格往往以32位浮点数形式存储。

    但是,我们真的需要32位浮点数码? 大多数情况下, 股票价格以小数点后保留两位数据进行交易。 即便我们想看到更精确的数据, 16位浮点数已经足够了。

    我们往往会在读取数据的时候, 设置数据类型,而不是保留数据原类型。 那样的话,会浪费掉部分内存。

    通过read_csv() 中设置dtype参数来完成数据类型设置。还可以设置字典类型,设置该列是键, 设置某列是字典的值。

    请看下面的pandas 例子:

    在这里插入图片描述
    文章到这里结束了! 希望上述三个方法可以帮你节省时间和内存。

    展开全文
  • demo.py(pandas读取MongoDB,DataFrame读取整张表的数据): # coding=utf-8 from pymongo import MongoClient # 需要pip安装 import pandas as pd client = MongoClient('192.168.0.11', 27017) # 默认...

     

    demo.py(pandas读取MongoDB,DataFrame读取整张表的数据):

    # coding=utf-8
    from pymongo import MongoClient  # 需要pip安装
    import pandas as pd
    
    
    client = MongoClient('192.168.0.11', 27017)  # 默认localhost,27017
    collection = client["数据库名"]["集合名"]
    data = collection.find()
    data = list(data)  # 在转换成列表时,可以根据情况只过滤出需要的数据。(for遍历过滤)
    
    df = pd.DataFrame(data)  # 读取整张表 (DataFrame)
    print(df)
    '''
                            _id  name  age
    0  59ba7f9b421aa91b08a43faa  张三   18
    1  59ba7f9b421aa91b08a43fab  李四   20
    '''
    
    

    demo.py(pandas读取MongoDB,Series读取一条记录):

    # coding=utf-8
    from pymongo import MongoClient  # 需要pip安装
    import pandas as pd
    
    
    client = MongoClient('192.168.0.11', 27017)  # 默认localhost,27017
    collection = client["数据库名"]["集合名"]
    data = collection.find()
    data = list(data)
    
    t1 = data[0]  # 一条一条记录地读 (Series)
    t1 = pd.Series(t1)
    print(t1)
    '''
    _id       59ba7f9b421aa91b08a43faa
    name      张三
    age       18
    
    '''
    
    

     

     

    展开全文
  • 我们常见的数据存储格式无非就是csv、excel、txt以及数据库等形式。 数据读取pandas中可以使用一些函数完成数据的读取。比如read_csv、read_excel、read_table、read_sql等,...
  • 近期的工作和Hive SQL打交道比较,偶尔遇到一些SQL不好解决的问题,会将文件下载下来用pandas来处理,由于数据量比较大,因此有一些相关的经验可以和大家分享。 大文本数据的读写 有时候我们会拿到一些很大的...
  • 笔者消耗在等待Pandas读取一堆文件或对其进行汇总计算上的时间太了。最近,笔者发现了一个更好的工具可以更新数据处理管道,使这些CPU内核正常工作! 笔者使用该工具进行繁重的数据处理,例如读取包含10 G...
  • pandas处理大数据———减少90%内存消耗的小贴士 一般来说,用pandas处理小于100兆的数据,性能不是问题。当用pandas来处理100兆至几个G的数据时,将会比较耗时,同时会导致程序因内存不足而运行失败。 当然,像...
  •     Hadoop里,所有计算都必须按照一个map、一个group by、一个aggregate或者这种计算序列来写。这和穿上紧身衣一样,憋得慌啊。许多计算用其他模型其实更适合... 可是呢,因为Hadoop和大数据是热词,世界有...
  • pandas读取mysql,用read_sql方法,一行代码读取mysql数据该篇文章不明白的留言,100个爬虫、数据分析、机器学习源码已经上传知识星球(左侧为知识星球,右侧二维码为微信公众号) ...
  • pandas读取大文件

    2018-08-17 10:42:59
    读取上GB大文件的方式有很,但是并不是都有像pandas这样强大的数据清洗功能。数据太大是,可以分块处理,及时手动删除内存,最后在合并数据。   今天在读取一个超大csv文件的时候,遇到困难: 首先使用office...
  • pandas 读取包含个字典的txt文件 爬虫得到的IMDB电影数据文件,是包含个字典的txt文件,如下: {“movie_id”: 111161, “movie_name”: “The Shawshank Redemption”, “year”: 1994, “movie_link”: “/...
  • 1. 使用 pandas 读取 CSV 文件 原始数据包含了公司员工的数据: Name Hire Date Salary Sick Days remaining Graham Chapman 03/15/14 50000.00 10 John Cleese 06/01/15 65000.00 8 Eric Idle 05/12/14...
  • 虽然pandas是数据分析、机器学习等必备利器,但现在流行的机器学习应用训练模型动辄需要GB级别的数据,很时候pandas无法快速读取大数据文件或者进行高效运算,甚至可...
  • 当使用pandas读取大文本文件时,会由于内存不足产生MemoryError异常,可以设置分块读取的方式来解决。 代码实现 import pandas as pd # 由于数据量较大,一次性读入可能造成内存错误(Memmory Error),因而使用...
  • 一般来说,用pandas处理小于100兆的数据,性能不是问题。当用pandas来处理100兆至几个G的数据时,将会比较耗时,同时会导致程序因内存不足而运行失败。 我今天用pyspark读取2~3G日志文件时,居然报OOM!想必就是...
  • 使用pandas读取dat文件完整解决方案 import csv data = pd.read_csv(‘文件名.dat’,header=None,encoding=‘utf-8’,delimiter="\t",quoting=csv.QUOTE_NONE) 这里使用的是相对路径
  • 以下代码是“达观杯”csv数据文件读取,来源: 加载大数据:带有可爱的读取进度条 import time import pandas as pd from tqdm import tqdm # @execution_time def reader_pandas(file, chunkSize=100000, ...
  • 第一:pandas.read_csv读取本地csv文件为数据框形式 data=pd.read_csv('G:\data_operation\python_book\chapter5\\sales.csv') 第二:如果存在日期格式数据,利用pandas.to_datatime()改变类型 data.iloc[:,1]=...
1 2 3 4 5 ... 20
收藏数 3,423
精华内容 1,369
关键字:

pandas 能读取多大数据