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中是一樣的.這里就不再一一介紹了.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM