前面介绍了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. Android 两种注册、发送广播的区别

    前言:前面文章记录了Service的使用,这次来记录另一个四个组件之一的BroadcastReceiver.主要介绍两种发送和注册广播的区别. BroadcastReceiver广播接收者用于接收系统 ...

  2. mac使用xampp中自带phpmyadmin连接单独安装mysql

    1 在xampp安装目录中找到phpadmin目录,编辑config.inc.php权限,赋予读写权限 2 打开config.inc.php $cfg['Servers'][$i]['user'] = ...

  3. dubbo服务接口开发者必备调试利器,你值得拥有

    dubbo服务接口开发者必备调试利器,你值得拥有 学习了:https://my.oschina.net/vboxtop/blog/1524290 找到了:http://www.vbox.top/?fr ...

  4. java类中,成员变量赋值第一个进行,其次是静态构造函数,再次是构造函数

    如题是结论,如果有人问你Java类的成员初始化顺序和初始化块知识就这样回答他.下面是代码: package com.test; public class TestClass{ // 成员变量赋值第一个 ...

  5. Free Code Camp社区对数百计编程学习者进行的统计希望告诉你什么?

    文章来源:https://www.sdk.cn/news/5044 著名编程学习社区Free Code Camp对超过1.5万名编程学习者进行了调查.其中有一个问题为:“你对哪个编程职位最感兴趣?”有 ...

  6. Python & Django & Pycharm 安装

    一.下载安装Python 从https://www.python.org/上下载 Python 2.7.6,双击安装包开始安装: 单击“Next”按钮,进入Python安装组件选择界面.这里我们安装全 ...

  7. UNP学习笔记(第八章 基本UDP套接字编程)

    UDP应用程序客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报,其中必须指定目的地的地址作为参数. 下图给出典型的UDP客户/服务器程序的函数调用. recvfrom和sendt ...

  8. 如何在VS2010中添加ActiveX控件及使用方法

    方法1: 1.首先在在项目上面右击添加类,如下图所示: 2.点击添加ActiveX控件中的MFC类 3.找到需要添加的ActiveX类. 4.点击完成即可. 5.此时转到资源视图,打开如下视图.可能工 ...

  9. 图论 Krusal算法C++实现

    1.实验用例 如下图所示的赋权图表示某七个城市及预先算出它们之间的一些直接通信成路造价(单位:万元),试给出一个设计方案,使得各城市之间既能够通信又使总造价最小并计算其最小值. 2实验原理和方法 为了 ...

  10. 如何将数据导入到hive中

    可以通过多种方式将数据导入hive表 1.通过外部表导入 用户在hive上建external表,建表的同时指定hdfs路径,在数据拷贝到指定hdfs路径的同时,也同时完成数据插入external表. ...