前面介绍了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数据分析之:数据加载,存储与文件格式的更多相关文章

  1. 利用python进行数据分析之数据加载存储与文件格式

    在开始学习之前,我们需要安装pandas模块.由于我安装的python的版本是2.7,故我们在https://pypi.python.org/pypi/pandas/0.16.2/#downloads ...

  2. python数据分析笔记——数据加载与整理]

    [ python数据分析笔记——数据加载与整理] https://mp.weixin.qq.com/s?__biz=MjM5MDM3Nzg0NA==&mid=2651588899&id ...

  3. Python之pandas数据加载、存储

    Python之pandas数据加载.存储 0. 输入与输出大致可分为三类: 0.1 读取文本文件和其他更好效的磁盘存储格式 2.2 使用数据库中的数据 0.3 利用Web API操作网络资源 1. 读 ...

  4. python多种格式数据加载、处理与存储

    多种格式数据加载.处理与存储 实际的场景中,我们会在不同的地方遇到各种不同的数据格式(比如大家熟悉的csv与txt,比如网页HTML格式,比如XML格式),我们来一起看看python如何和这些格式的数 ...

  5. 利用Python进行数据分析_Pandas_数据加载、存储与文件格式

    申明:本系列文章是自己在学习<利用Python进行数据分析>这本书的过程中,为了方便后期自己巩固知识而整理. 1 pandas读取文件的解析函数 read_csv 读取带分隔符的数据,默认 ...

  6. 利用python进行数据加载和存储

    1.文本文件 (1)pd.read_csv加载分隔符为逗号的数据:pd.read_table从文件.URL.文件型对象中加载带分隔符的数据.默认为制表符.(加载为DataFrame结构) 参数name ...

  7. arcgis python 使用光标和内存中的要素类将数据加载到要素集 学习:http://zhihu.esrichina.com.cn/article/634

    学习:http://zhihu.esrichina.com.cn/article/634使用光标和内存中的要素类将数据加载到要素集 import arcpy arcpy.env.overwriteOu ...

  8. [源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampler

    [源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampler 目录 [源码解析] PyTorch 分布式(1) --- 数据加载之DistributedSampl ...

  9. [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader

    [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 目录 [源码解析] PyTorch 分布式(2) --- 数据加载之DataLoader 0x00 摘要 0x01 ...

  10. 实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)

    实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624 ...

随机推荐

  1. CodeForces - 103D Time to Raid Cowavans

    Discription As you know, the most intelligent beings on the Earth are, of course, cows. This conclus ...

  2. 苹果放宽了 iOS 5.0 对应用本地存储的限制

    iOS5.0引入了iCloud,让那些需要本地存储较多数据的app开发者(比如支持离线的杂志,新闻类app)陷入了 尴尬的境地,因为将大量数据存储在/Documents 文件夹将导致iCloud同步变 ...

  3. Android Spinner In Toolbar

    As the title of the post suggest in this tutorial we will see how to have spinner widget inside the ...

  4. Unity -- 使用easyAR的基础教程

    “三人行,必有我师焉”,抱着共同学习进步的态度,和大家一起交流下EasyAR的用法.有不足的地方,欢迎指出!大家都知道,今年的QQ,支付宝,都用到了AR的技术,扫描一张图片,就会出现虚拟模型,及其想要 ...

  5. 总结自己使用shell命令行经常使用到的8个小技巧

    原创blog,转载请注明出处 Shell是命令解释器 [root@localhost ~]# cat /etc/shells 查看本系统共支持哪些shell 1 tab 命令补全 这个差点儿每次都能用 ...

  6. C++中全局变量如何使用

    运行文件的小技巧:包含2个.CPP和一个.H文件,必须一个.CPP一个.H一一对应.且C++中,只能运行一个项目,要想在多个文件中(.cpp)运行一个.cpp必须建立多个项目,或者将不允许运行的文件从 ...

  7. web前端的一些实用技能

    如今我们使用的互联网,客户端与服务器端的交互无时无刻不在发生.比如我们在浏览器打开网页,浏览器就是客户端,将网页数据发过来的也就是服务器.其实服务器,并没有什么特别的,也就是一台昼夜不停运转的电脑罢了 ...

  8. Java 加载器

    类的加载是由类加载器完成的,类加载器包括: 根加载器( BootStrap ).扩展加载器( Extension ).系统加载器( System )和用户自定义类加载器( java.lang.Clas ...

  9. sudo apt-get update 没有公钥,无法验证下列签名

    在更新系统源后,输入sudo apt-get update之后出现提示: W: GPG 错误:http://archive.ubuntukylin.com:10006 xenial InRelease ...

  10. 常用global.css

    html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, h6, form, fieldset, legend, img { margin: ...