背景

《利用Python进行数据分析》,第 6 章的数据加载操作 read_xxx,有 chunksize 参数可以进行逐块加载。

经测试,它的本质就是将文本分成若干块,每次处理 chunksize 行的数据,最终返回一个TextParser 对象,对该对象进行迭代遍历,可以完成逐块统计的合并处理。

示例代码

文中的示例代码分析如下:

from pandas import DataFrame,Seriesimport pandas as pd path='D:/AStudy2018/pydata-book-2nd-edition/examples/ex6.csv'# chunksize return TextParserchunker=pd.read_csv(path,chunksize=1000) # an array of Seriestot=Series([])chunkercount=0for piece in chunker:print '------------piece[key] value_counts start-----------'#piece is a DataFrame,lenth is chunksize=1000,and piece[key] is a Series ,key is int ,value is the key columnprint piece['key'].value_counts()print '------------piece[key] value_counts end-------------'#piece[key] value_counts is a Series ,key is the key column, and value is the key counttot=tot.add(piece['key'].value_counts(),fill_value=0)chunkercount+=1 #last order the seriestot=tot.order(ascending=False)print chunkercountprint '--------------'

流程分析

首先,例子数据 ex6.csv 文件总共有 10000 行数据,使用 chunksize=1000 后,read_csv操作返回一个 TextParser 对象,该对象总共有10个元素,遍历过程中打印 chunkercount验证得到。

其次,每个 piece 对象是一个 DataFrame 对象,piece['key'] 得到的是一个 Series 对象,默认是数值索引,值为 csv 文件中的 key 列的值,即各个字符串。

将每个 Series 的 value_counts 作为一个Series,与上一次统计的 tot 结果进行 add 操作,最终得到所有块数据中各个 key 的累加值。

最后,对 tot 进行 order 排序,按降序得到各个 key 的值在 csv 文件中出现的总次数。

这里很巧妙了使用 Series 对象的 add 操作,对两个 Series 执行 add 操作,即合并相同key:key相同的记录的值累加,key不存在的记录设置填充值为0

输出结果为:

python给每个key添加数据_Python数据分析之逐块读取文本并累加key的次数相关推荐

  1. python read_csv chunk_Python 数据分析之逐块读取文本的实现

    背景 <利用Python进行数据分析>,第 6 章的数据加载操作 read_xxx,有 chunksize 参数可以进行逐块加载. 经测试,它的本质就是将文本分成若干块,每次处理 chun ...

  2. python处理多个excel数据_python 数据分析基础 day8-pandas读写多个excel文件

    今天是读<python数据分析基础>的第8天,今天的读书笔记的内容为利用pandas读写多个excel文件,当中涉及到读写excel文件的多个工作表. 大致原理如下: glob.glob( ...

  3. python中显示第三行数据_Python数据分析及可视化-小测验

    image.png 首先将5题的文件复制形成副本,如下图所示: image.png 在资源管理器的路径中输入cmd,如下图所示: image.png 在上图中输入后,按Enter键运行进入cmd窗口. ...

  4. python从txt拿取数据_python从txt文件读取数据

    (作为一个python初学者,记录一点学习期间的笔记,方便日后查阅,若有错误或者更加便捷的方法,望指出!) 1.读取TXT文件数据,并对其中部分数据进行划分.一部分作为训练集数据,一部分作为测试集数据 ...

  5. python pandas处理excel 统计数据_pandas数据分析输出excel产生文本形式存储的百分比数据,如何处理?...

    Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待 4999元包邮 去购买 > 关键词: python.pandas.to_excel.文本形式存储 ...

  6. python中csv文件添加数据标签_Python对csv格式文件进行数据分析

    csv格式文件数据分析 1.下载数据 1.1下载数据,处理csv格式文件的数据 安装csv模块,在网上下载或者自己写一个csv格式的文件 也可以访问官网,不过很多人下不了这些文档,我这的下载积分只要1 ...

  7. python折线图怎么添加数值_Python数据可视化:如何创建曲线图

    一图胜千言,使用Python的matplotlib库,可以快速创建高质量的图形. 用matplotlib生成基本图形非常简单,只需要几行代码,但要创建复杂的图表,需要调用更多的命令和反复试验,这要求用 ...

  8. python代码中怎么增加数据_python 实现数据库中数据添加、查询与更新的示例代码...

    一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...

  9. python为csv文件添加表头_python读csv文件时指定行为表头或无表头的方法

    python读csv文件时指定行为表头或无表头的方法 pd.read_csv()方法中header参数,默认为0,标签为0(即第1行)的行为表头.若设置为-1,则无表头.示例如下: (1)不设置hea ...

最新文章

  1. Visual C# .NET 2003 语言的改变
  2. 重温Thinking in java
  3. AI泡沫之上,创业公司的护城河和边界扩张
  4. php ajax弹出框传值,PHP_Yii2.0 模态弹出框+ajax提交表单,如题 我们使用模态弹出框+ajax - phpStudy...
  5. VScode快速一键生成html、vue、jsx、ajax、sass、docker等代码片段
  6. mysql入门操作_对MySQL的几个入门操作
  7. P4719 【模板】“动态 DP“动态树分治(矩阵/轻重链剖分/ddp)
  8. Ubuntu文件上锁了,怎么打开???亲测有效
  9. 本科生手握十余篇SCI,达博士毕业要求后,他获顶级名校全奖直博offer
  10. 一个牛逼的项目开发过程是怎样的?
  11. java 求向量的均值,标准数组——向量
  12. 机器学习第三回——逻辑回归 (Logistic Regression)
  13. 如何开发一个完整的JavaScript组件
  14. 战地4无限加入服务器,战地1怎么加入服务器
  15. MongoDB——客户端Robo 3T v1.4.3 安装
  16. 浅析分支定界法在SLAM技术中的应用
  17. 零基础学习IT技术是有技巧的
  18. [JZOJ3337] 【NOI2013模拟】wyl8899的TLE
  19. 图片标注软件labelImg使用指南
  20. Mathematica最简教程

热门文章

  1. 【小程序】免费版wifi共享,扫码即可连wifi
  2. 技校计算机专业都学什么课程,技校人工智能主要学什么 人工智能专业是什么...
  3. 使用 ANTs 进行 MRI (结构、功能)图像配准——安装,配准详细解答
  4. 【linux】循序渐进学运维-基础篇-kill命令
  5. Python列表操作小技巧——索引、切片、增添、删除、修改和其他用法
  6. Git 安装与卸载 gitk安装与优化
  7. abb机器人外部tcp定义方法_ABB机器人的各种通信运用方式
  8. 详解支持向量机(SVM)算法与代码实现
  9. MacBook Pro U盘读写速度太慢解决办法
  10. 网络通信协议的发展及socket/netty理解