python数据分析之:数据加载,存储与文件格式
前面介绍了numpy和pandas的数据计算功能.但是这些数据都是我们自己手动输入构造的.如果不能将数据自动导入到python中,那么这些计算也没有什么意义.这一章将介绍数据如何加载以及存储.
首先来看读写文本格式的数据
pandas提供了一些用于将表格型数据读取为DataFrame对象的函数.如下表:

csv文件是默认以,为分割符.可以通过命令行cat来读取文件内容.
In [4]: cat /home/zhf/1.csv
1,2,3,4
5,6,7,8
9,10,11,12
同样的我们也可以用pandas的函数进行读取.
In [6]: result=pd.read_csv('/home/zhf/1.csv')
In [7]: result
Out[7]:
1 2 3 4
0 5 6 7 8
1 9 10 11 12
但是读入的文件没有列名,如果要添加列名,需要设置header参数
In [11]: result=pd.read_csv('/home/zhf/1.csv',header=None)
In [12]: result
Out[12]:
0 1 2 3
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
也可以自己制定列的名称
In [14]: result=pd.read_csv('/home/zhf/1.csv',names=['one','two','three','four']
...: )
In [15]: result
Out[15]:
one two three four
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
In [16]: result['one']
Out[16]:
0 1
1 5
2 9
还可以明确将该列放到某个索引的位置上,通过制定index_col参数.
In [18]: result=pd.read_csv('/home/zhf/1.csv',names=['one','two','three','four']
...: ,index_col='four')
In [19]: result
Out[19]:
one two three
four
4 1 2 3
8 5 6 7
12 9 10 11
如果出现像下面的这种数据,#的这一行是我们不需要的.该如何省略掉呢
In [22]: result=pd.read_csv('/home/zhf/1.csv')
In [23]: result
Out[23]:
1 2 3 4
0 # # # #
1 5 6 7 8
2 9 10 11 12
可以通过skiprows将某一行的数据跳过.
In [24]: result=pd.read_csv('/home/zhf/1.csv',skiprows=[1])
In [25]: result
Out[25]:
1 2 3 4
0 5 6 7 8
1 9 10 11 12
同样的在读出的数据中,也可以判断是否为非空或者需要填充
In [10]: result
Out[10]:
1 2 3 4
0 # # # NaN
1 5 6 7 8.0
2 9 10 11 12.0
In [11]: pd.isnull(result)
Out[11]:
1 2 3 4
0 False False False True
1 False False False False
2 False False False False
read_csv和read_table的内置函数如下:



逐块读取文本文件
在处理很大的文件时,或找出大文件中的参数集便于后续处理的时候,只需要读取文件的一小部分或逐块对文件进行迭代.
读取某几行需要设置nrows参数,这里的nrows下标是从0开始的.因此nrows=2代表前3行.
In [19]: result=pd.read_csv('/home/zhf/1.csv',nrows=2)
In [20]: result
Out[20]:
1 2 3 4
0 # # # NaN
1 5 6 7 8.0
将数据写到文件上
数据也可以被输出为分隔符格式的文本
to_csv将数据写入到文件中,如果没有该文件,将会自动创建一个.
data1=data.to_csv('/home/zhf/3.csv')
在写入的时候也可以制定分隔符
data1=data.to_csv('/home/zhf/3.csv',sep='|')
JSON文件
json文件是在HTTP上广泛用来传输数据的文件之一,下面来看下如何将json对象传入到DataFrame中
In [34]: import json
In [35]: result=json.loads('/home/zhf/test.json')
In [36]: data=json.dumps(result)
In [37]: ret=DataFrame(data['one'],columns=['name','age'])
还有很多其他格式的文件,比如HTML,XML,数据库等文件.这些文件的读写和在python中是一样的.这里就不再一一介绍了.
python数据分析之:数据加载,存储与文件格式的更多相关文章
- 利用python进行数据分析之数据加载存储与文件格式
在开始学习之前,我们需要安装pandas模块.由于我安装的python的版本是2.7,故我们在https://pypi.python.org/pypi/pandas/0.16.2/#downloads ...
- python数据分析笔记——数据加载与整理]
[ python数据分析笔记——数据加载与整理] https://mp.weixin.qq.com/s?__biz=MjM5MDM3Nzg0NA==&mid=2651588899&id ...
- Python之pandas数据加载、存储
Python之pandas数据加载.存储 0. 输入与输出大致可分为三类: 0.1 读取文本文件和其他更好效的磁盘存储格式 2.2 使用数据库中的数据 0.3 利用Web API操作网络资源 1. 读 ...
- python多种格式数据加载、处理与存储
多种格式数据加载.处理与存储 实际的场景中,我们会在不同的地方遇到各种不同的数据格式(比如大家熟悉的csv与txt,比如网页HTML格式,比如XML格式),我们来一起看看python如何和这些格式的数 ...
- 利用Python进行数据分析_Pandas_数据加载、存储与文件格式
申明:本系列文章是自己在学习<利用Python进行数据分析>这本书的过程中,为了方便后期自己巩固知识而整理. 1 pandas读取文件的解析函数 read_csv 读取带分隔符的数据,默认 ...
- 利用python进行数据加载和存储
1.文本文件 (1)pd.read_csv加载分隔符为逗号的数据:pd.read_table从文件.URL.文件型对象中加载带分隔符的数据.默认为制表符.(加载为DataFrame结构) 参数name ...
- arcgis python 使用光标和内存中的要素类将数据加载到要素集 学习:http://zhihu.esrichina.com.cn/article/634
学习:http://zhihu.esrichina.com.cn/article/634使用光标和内存中的要素类将数据加载到要素集 import arcpy arcpy.env.overwriteOu ...
- [源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampler
[源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampler 目录 [源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampl ...
- [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader
[源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 目录 [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 0x00 摘要 0x01 ...
- 实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)
实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624 ...
随机推荐
- lock与monitor的区别
1.Lock 只能对引用对象加锁 Lock锁定区间内可以对锁定值修改而不发生运行时错误,通常也会采用此种修改方式.这种方式又有点类同于使用Monitor.Wait取得资源,并对这个资源进行操作. 用法 ...
- ArcGIS 10.2 二次开发,兼容Visual Studio 2012二次开发,完美安装教程
GIS 经常安装是常有的事,每次重装系统都要浪费大半天去安装这个.所以凑这一次安装,把这个软件重新安装的步骤整理了一下,希望对大家有所帮助.这次整理的内容的关键优点是,对常见的出错内容进行了归纳整理. ...
- Android为什么方法数不能超过65535
言归正传,来聊聊为什么方法数不能超过65535?搬上Dalvik工程师在SF上的回答,因为在Dalvik指令集里,调用方法的invoke-kind指令中,method reference index只 ...
- Json格式化工具 JsonViewer下载
免安装版,分享链接永久有效~! 云盘下载地址: http://cloud.suning.com/cloud-web/share/link.htm?sk=401f784782751055ddc21cdb ...
- 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介 ...
- 转:Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能 (阿里中间件团队博客)
from: http://jm.taobao.org/2016/04/01/kafka-vs-rabbitmq-vs-rocketmq-message-send-performance/ 引言 分布式 ...
- Node.js学习入门手册
Node.js 安装 1.下载http://nodejs.org/dist/v0.12.1/node-v0.12.1-x86.msi并完成安装 2.下载https://www.python.org/f ...
- 我是如何通过一个 XSS 探测搜狐内网扫描内网并且蠕动前台到最后被发现的
我是如何通过一个 XSS 探测搜狐内网扫描内网并且蠕动前台到最后被发现的!(附带各种 POC) | WooYun-2014-76685 | WooYun.orghttp://wooyun.org/bu ...
- robot framework selenium2library定位
进行页面元素操作,最麻烦的莫过于元素定位了,经常提示element is not visible 或者element is not exist 下面介绍常见的定位方法和定位中的问题 1 使用name和 ...
- Codeforces Hello2015第一题Cursed Query
英文题面: De Prezer loves movies and series. He has watched the Troy for like 100 times and also he is a ...