python讀取.data文件的實現(xiàn)
.data文件格式
.data文件是用來存儲數(shù)據(jù)的一種文件格式。之前通常數(shù)據(jù)是用逗號隔開或tab健隔開的格式,現(xiàn)在也可能是文本文件格式或二進制文件格式。
識別.data文件里面的數(shù)據(jù)
1、先測試一下文件是文本文件還是二進制文件
用網(wǎng)上可以下載到的iris.data文件來舉例(iris.data文件下載地址:https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data),代碼如下:
# 通過python自帶的文件讀取文本文件 file=open('iris.data','r') data=file.read() print(data) file.close()
運行之后,可以看到結(jié)果(此處放部分數(shù)據(jù)結(jié)果):
根據(jù)打印出來的數(shù)據(jù)結(jié)果,可以分析出來,iris.data存的是文本數(shù)據(jù),并且是用逗號分隔的,也可以認為是csv文件格式。
如果打印出來的數(shù)據(jù)結(jié)果不是文本類型的話,可以測試一下是不是二進制文件,代碼如下:
# 通過python自帶的文件讀取二進制文件 file=open('iris.data','rb') data=file.read() print(data) file.close()
2、用Pandas讀取.data文件
方法如下:
用read_csv()方法讀取文件,這個方法會自動創(chuàng)建一個dataframe,將數(shù)據(jù)轉(zhuǎn)換進去,代碼如下:
# 使用Pandas讀取數(shù)據(jù) import pandas as pd data=pd.read_csv('iris.data',header=None,sep=',') print(data)
注意:在第一步里面查看文件內(nèi)容的時候,發(fā)現(xiàn)iris.data文件里面沒有表頭,iris.data的表頭是在iris.names文件里面進行說明的(附上iris.names文件下載地址:https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.names),所以在read_csv函數(shù)調(diào)用的時候,需要加上header=None,否則data里面的第一行就會自動變成表頭,這樣的話150行數(shù)據(jù)就變成149行。
運行之后,顯示結(jié)果如下:
3、其他數(shù)據(jù)存儲類型
除了上述提到的文件格式外,還有json格式和pickle。
在讀取的時候,需要import json和import pickle后,調(diào)用json.dumps()方法和pickle.dump()方法進行讀取。
參考資料
https://www.askpython.com/python/examples/read-data-files-in-python
到此這篇關(guān)于python讀取.data文件的實現(xiàn)的文章就介紹到這了,更多相關(guān)python讀取.data文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧詳解
這篇文章主要為大家詳細介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法中的棧,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03Python?OpenCV超詳細講解透視變換的實現(xiàn)
OpenCV用C++語言編寫,它具有C?++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac?OS,OpenCV主要傾向于實時視覺應用,并在可用時利用MMX和SSE指令,本篇文章帶你通過OpenCV實現(xiàn)透視變換2022-04-04使用Python的內(nèi)建模塊collections的教程
這篇文章主要介紹了使用Python的內(nèi)建模塊collections的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下2015-04-04