pandas处理大文本数据
当数据文件是百万级数据时,设置chunksize来分批次处理数据
案例:美国总统竞选时的数据分析
读取数据
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
df1 = pd.read_csv("./usa_election.csv",low_memory=False)
df1.shape
结果:(536041, 16) #可以看到数据量为536041
将数据在此进行级联成更大的文本数据
df =pd.concat([df1,df1,df1,df1])
df.shape
结果:(2144164, 16)
%%time
ret = df.to_csv("./hehe.csv",index = False)
ret
将df数据读取到文件中,并计算写入时间
ret = pd.read_csv("./hehe.csv",low_memory = False,chunksize=500000)
#将写入的大数据文件读出来,low_memory = False表示是否在内部一块的形式处理文件,chunksize表示分批次处理文件,每次处理多少数据
ret
读取的文件格式是:<pandas.io.parsers.TextFileReader at 0x122f30f0>
添加循环,读出来数据
for x in ret:
print(type(x))
结果:
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
然后分批次处理数据 # 将str类型的时间转化成为时间类型的
处理前:

处理后:
处理过程:
months = {"JAN":"1", "FEB":"2","MAR":"3","APR":"4","MAY":"5","JUN":"6","JUL":"7","AUG":"8","SEP":"9","OCT":"10","NOV":"11","DEC":"12"}
def conver(x):
day,month,year = x.split("-") #进行切片操作
datatime = "20"+year+"-"+str(months[month])+"-"+day
return datatime #对切片重新组合
df1["contb_receipt_dt"] = df1["contb_receipt_dt"].map(conver)
df1["contb_receipt_dt"] = pd.to_datetime(df1["contb_receipt_dt"]) #转化成时间格式
df1["contb_receipt_dt"]

累加和的操作
# 累加和
a = np.arange(101) 随机一个数组数据
display(a)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100])
b = a.cumsum() #求出该数据的累加和用函数cumsum()
ree=DataFrame(b,columns=["num"])
ree["num"].plot() #画出累加和的那列的图谱

pandas处理大文本数据的更多相关文章
- JDBC 关于大文本数据
大文本数据Clob,在不同的数据库中类型名不一致,有的是text格式,有的是clob,还有其他一些格式 package test; import java.io.BufferedReader; i ...
- Android自定义ScrollView分段加载大文本数据到TextView
以下内容为原创,转载时请注明链接地址:http://www.cnblogs.com/tiantianbyconan/p/3311658.html 这是我现在碰到的一个问题,如果需要在TextView中 ...
- Pandas字符串和文本数据
在本章中,我们将使用基本系列/索引来讨论字符串操作.在随后的章节中,将学习如何将这些字符串函数应用于数据帧(DataFrame). Pandas提供了一组字符串函数,可以方便地对字符串数据进行操作. ...
- pb中读取大文本数据
string ls_FileName,lb_FileDatas,lb_FileData long ll_FileLen,ll_Handle,ll_Loop,ll_Bytes,ll_Loops,ll_ ...
- 利用JDBC处理mysql大数据--大文本和二进制文件等
转载自http://www.cnblogs.com/xdp-gacl/p/3982581.html 一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob, ...
- 使用JDBC处理MySQL大文本和大数据
LOB,Large Objects,是一种用于存储大对象的数据类型,一般LOB又分为BLOB与CLOB.BLOB通常用于存储二进制数据,比如图片.音频.视频等.CLOB通常用于存储大文本,比如小说. ...
- jdbc基础 (三) 大文本、二进制数据处理
LOB (Large Objects) 分为:CLOB和BLOB,即大文本和大二进制数据 CLOB:用于存储大文本 BLOB:用于存储二进制数据,例如图像.声音.二进制文件 在mysql中,只有B ...
- 使用jdbc存储图片和大文本
package cn.itcast.i_batch; import java.sql.Connection; import java.sql.PreparedStatement; import jav ...
- Python文本数据互相转换(pandas and win32com)
(工作之后,就让自己的身心都去休息吧) 今天介绍一下文本数据的提取和转换,这里主要实例的转换为excel文件(.xlsx)转换world文件(.doc/docx),同时需要使用win32api,同py ...
随机推荐
- Python内建函数一
内建函数 1. abs(number) 用法:返回数字的绝对值 2. all(iterable) 用法:如果iterable的所有元素都是真值,就返回True,否则返回False 3. any(ite ...
- linux 02 基础命令
linux 02 基础命令 1.alias 别名 pyvip@Vip:~/demo$ alias lh="ls -lh" #将ls -lh的功能赋给lh(lh原来并没有意义)这个赋 ...
- hdu5709Claris Loves Painting主席树 奇妙的DFS序
先不考虑层数限制 一棵树上每个点有个颜色,问一棵子树的颜色数 感觉简单多了是吧 考虑每个点的贡献:自己到根的路径上的一个包含自己的连续段 观察最顶端的点的父亲: 它满足有了额外的同色孩子(咦) 这一条 ...
- Mac客户端CentOS服务器 SSH免密码登陆
假定有2个服务器A(127.0.0.1)和B(192.168.0.1),A作为客户端来登录服务器B 1.在服务器A下使用 ssh-keygen -t ras -P 会在-/.ssh目录下'生成公钥(i ...
- Ubuntu上k8s集群里创建证书
证书: k8s里创建证书(使用证书文件命令创建): kubectl create secret tls scdsc-org-cn --cert=/etc/letsencrypt/live/scdsc. ...
- Fedora12下yum安装低版本gcc
1.Fedora12下gcc位置及其版本如下: 2.根据需要,要安装低版本的gcc,直接用"yum install gcc"安装时默认是安装最新版本的gcc,如下: 3.可先通过& ...
- 使用 xib 设置 button 等款等高
很多时候需要使用平分的控件来布局,当然xib中可以之间使用 UIToolBar 使用 UIBarButtonItem 添加弹簧即可完成平均分布 但是,直接使用 button 也可以实现平均布局
- 【持续更新】Spring相关
什么是IoC 什么是AoP Bean的实例化方法--3种 Bean的作用域--常用2种 Bean的生命周期 Bean的装配方式 基于xml的2种装配方式 基于Annotaton的装配方式
- JSTORM中IRichBolt与IBasicBolt的区别
- git从无到有建立一个仓库并上传文件
第一步,创建仓库 登录自己的码云 第二步,本地操作 1.到你所要上传的文件夹中右键 选择git bash here 2.初始化项目 git init 3.连接远程仓库 刚才我们建立的时候的远程地址就 ...