python数据分析之:数据加载,存储与文件格式

Posted 一张红枫叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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_csvread_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进行数据分析 第6章 数据加载存储与文件格式

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

数据加载存储与文件格式

python之json格式化与紧凑处理

h5文件格式详解及h5文件与图片文件之间的相互转换(python实现)

04-Python之文件异常和模块