tsv、csv、xls等文件類(lèi)型區(qū)別及如何用python處理詳解
前言
考慮到進(jìn)行機(jī)器學(xué)習(xí)、深度學(xué)習(xí)訓(xùn)練、預(yù)測(cè)時(shí)我們不免接觸到許許多多的數(shù)據(jù),而這些數(shù)據(jù)又以不同的格式存在(主要有csv、xls、tsv三種格式),所以本文就想來(lái)講講這三種格式數(shù)據(jù)的轉(zhuǎn)化、閱讀、處理
介紹
txt文件:txt為純文本文件,無(wú)格式,只保存內(nèi)容字符,基本跨平臺(tái),不過(guò)受字符的編碼影響(因?yàn)橹槐4孀址幋a,一般沒(méi)特定的編碼識(shí)別標(biāo)志),需要選擇對(duì)應(yīng)字符解碼方式才能正確讀?。ㄈ鏕BK編碼的字符用UTF-8解碼會(huì)亂碼)
csv文件:CSV是一種簡(jiǎn)單、實(shí)用的文件格式,用于存儲(chǔ)和表示包括文本、數(shù)值等各種類(lèi)型的數(shù)據(jù)。CSV 文件通常以 .csv
作為文件擴(kuò)展名。這種文件格式的一個(gè)顯著特點(diǎn)是:文件內(nèi)的數(shù)據(jù)以逗號(hào)分隔,呈現(xiàn)一個(gè)表格形式。CSV 文件已廣泛應(yīng)用于存儲(chǔ)、傳輸和編輯數(shù)據(jù)
tsv文件:TSV也是一種簡(jiǎn)單、實(shí)用的文件格式,與CSV一樣用于存儲(chǔ)和表示包括文本、數(shù)值等各種類(lèi)型的數(shù)據(jù)。其顯著特點(diǎn)是文件內(nèi)的數(shù)據(jù)以指標(biāo)符 '\t' 分隔
xls文件:xls是一個(gè)特有的二進(jìn)制格式,核心結(jié)構(gòu)屬于復(fù)合型文檔類(lèi)型,是2003版本Office Microsoft Office Excel工作表保存的默認(rèn)格式。新建Excel表格保存的后綴名為“.xls”。最普通的excel格式
xlsx文件:xlsx的核心結(jié)構(gòu)是XML類(lèi)型結(jié)構(gòu),采用了XML的壓縮方式,使其占用的空間更小,xlsx中最后一個(gè)x的意義就在于此,它是Excel2007版本的文件。新建Excel表格默認(rèn)保存的后綴名為“.xlsx”
xlsm文件:xlsm同xlsx一樣是屬于07年版本的保存文件。只有保存為xlsm文件格式時(shí),才能夠保存寫(xiě)在excel文件中的宏方法,也就是VBA語(yǔ)言程序。它的后綴名是“.xlsm”
doc文件:是office word的文檔文件,是是二進(jìn)制文檔,數(shù)據(jù)結(jié)構(gòu)復(fù)雜且保密(微軟私有格式,破解的多只能讀,寫(xiě)容易出問(wèn)題,官方word讀不回去)
docx文件:是一種基于xml的zip包,開(kāi)放格式,基本保證支持docx的都能通用讀寫(xiě)。
pdf文件:是Adobe推出的文檔交換格式,富文本,主要用于實(shí)現(xiàn)文檔交換(如傳閱和打印),對(duì)文字格式控制(可保證格式原樣不變)和文檔保護(hù)比doc好,同跨平臺(tái),屬于開(kāi)放標(biāo)準(zhǔn)
本文重點(diǎn)來(lái)講講標(biāo)紅的三種文件格式之間的轉(zhuǎn)化以及文件處理(python語(yǔ)言)
tsv、csv、txt的區(qū)別
- 相同點(diǎn): csv、tsv和txt都屬于文本文件。
- 不同點(diǎn):csv和tsv文件的字段間分別由逗號(hào)和tab鍵隔開(kāi),而txt文件則沒(méi)有明確要求,可使用逗號(hào)/制表符/空格等 多種不同的符號(hào)。
文件類(lèi)型 | 全稱(chēng) | 字段間的分隔符 |
---|---|---|
csv | Comma-separated values | 半角逗號(hào)(’,’) |
tsv | Tab-separated values | 制表符(Tab,’\t’) |
txt | Text File | 逗號(hào)/制表符/空格等,無(wú)固定格式 |
讀取/生成 不同格式數(shù)據(jù)文件(python)
python中有一個(gè)庫(kù)專(zhuān)門(mén)用來(lái)數(shù)據(jù)處理,這個(gè)庫(kù)就是pandas。pandas能夠?qū)?shù)據(jù)進(jìn)行歸一化、標(biāo)準(zhǔn)化、缺失值補(bǔ)全、異常值剔除等處理,當(dāng)然也能夠?qū)Σ煌母袷降臄?shù)據(jù)文件進(jìn)行讀取、生成、轉(zhuǎn)化。學(xué)會(huì)使用pandas庫(kù),將大大方便我的對(duì)數(shù)據(jù)的處理
下圖為pandas庫(kù)下不同格式數(shù)據(jù)文件讀取、生成的函數(shù)名稱(chēng)(來(lái)源 官方文檔):
一、讀取/生成csv數(shù)據(jù)文件
import pandas as pd data=pd.read_csv('./mydata.csv') #讀取csv格式文件,mydata.csv為文件名 data.to_csv('./my_new_data.csv') #生成csv格式文件,此時(shí)data中存儲(chǔ)的是其他文件格式(例如xls)
read_csv函數(shù)默認(rèn)的分隔符參數(shù)為‘,’,所以這里的read_csv('./mydata.csv')完整寫(xiě)法為read_csv('./mydata.csv',sep=',')。如果有需要我們也可以修改sep中的分隔符符號(hào),去實(shí)現(xiàn)不同分隔符下數(shù)據(jù)的讀取
read_csv函數(shù)讀取后返回對(duì)象為DataFrame類(lèi)型
二、讀取/生成txt數(shù)據(jù)文件
# 讀取txt文件 import pandas as pd # 調(diào)用read_table函數(shù)讀取txt文件 data = pd.read_table("./mydatat.txt") # 調(diào)用read_csv函數(shù)讀取txt文件 df = pd.read_csv("./my_new_data.txt",sep=',')
這里利用read_csv函數(shù)來(lái)讀取txt文件時(shí),這意味著txt文件中數(shù)據(jù)的分隔符需要是‘,’,否則將無(wú)法正確的解析數(shù)據(jù)
三、讀取/生成tsv數(shù)據(jù)文件
import pandas as pd # 讀取TSV文件 data = pd.read_csv('data.tsv', sep='\t')
read_csv()函數(shù)通常來(lái)讀取CSV文件,所以默認(rèn)情況下,它會(huì)將逗號(hào)作為分隔符。為了讀取TSV文件,我們需要使用read_csv()函數(shù),并將分隔符參數(shù)設(shè)置為'\t'
四、讀取/生成xls數(shù)據(jù)文件
import pandas as pd #讀取xlsx文件轉(zhuǎn)化為DataFrame格式存儲(chǔ)在df中 df=pd.read_excel('file.xlsx') #將DataFrame對(duì)象轉(zhuǎn)化為xlsx文件格式 df.to_excel('new_file.xlsx')
這兩個(gè)函數(shù)同樣可以生成xls文件。xls文件相比于xlsx文件安全系數(shù)更好,因?yàn)槠涫怯枚M(jìn)制存儲(chǔ)的,而xlsx文件是用xml格式存儲(chǔ)的,xml格式是為了傳輸?shù)?/p>
不同文件格式轉(zhuǎn)化
一個(gè)思路:先將待轉(zhuǎn)化文件格式讀取為DataFrame格式,然后再利用DataFrame格式的to_函數(shù)轉(zhuǎn)成不同格式文件
總結(jié)
python中的pandas庫(kù)是數(shù)據(jù)處理的一個(gè)利器,如果遇到數(shù)據(jù)處理的問(wèn)題都可以利用pandas庫(kù)來(lái)處理
到此這篇關(guān)于tsv、csv、xls等文件類(lèi)型區(qū)別及如何用python處理的文章就介紹到這了,更多相關(guān)python處理tsv、csv、xls文件類(lèi)型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python讀取csv文件示例(python操作csv)
- Python寫(xiě)入CSV文件的方法
- Python操作csv文件實(shí)例詳解
- 利用Python如何將數(shù)據(jù)寫(xiě)到CSV文件中
- Python將列表數(shù)據(jù)寫(xiě)入文件(txt, csv,excel)
- python讀寫(xiě)csv文件方法詳細(xì)總結(jié)
- python對(duì)csv文件追加寫(xiě)入列的方法
- python寫(xiě)入數(shù)據(jù)到csv或xlsx文件的3種方法
- python讀取csv文件指定行的2種方法詳解
- python讀寫(xiě)數(shù)據(jù)讀寫(xiě)csv文件(pandas用法)
相關(guān)文章
使用python+whoosh實(shí)現(xiàn)全文檢索
今天小編就為大家分享一篇使用python+whoosh實(shí)現(xiàn)全文檢索,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12解決PyCharm無(wú)法使用lxml庫(kù)的問(wèn)題(圖解)
這篇文章主要介紹了解決PyCharm無(wú)法使用lxml庫(kù)的問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12python實(shí)現(xiàn)比較兩段文本不同之處的方法
這篇文章主要介紹了python實(shí)現(xiàn)比較兩段文本不同之處的方法,涉及Python針對(duì)文本與字符串的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05python使用range函數(shù)計(jì)算一組數(shù)和的方法
這篇文章主要介紹了python使用range函數(shù)計(jì)算一組數(shù)和的方法,涉及Python中range函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05總結(jié)Python圖形用戶(hù)界面和游戲開(kāi)發(fā)知識(shí)點(diǎn)
在本篇文章里小編給大家整理了關(guān)于Python圖形用戶(hù)界面和游戲開(kāi)發(fā)知識(shí)點(diǎn)以及實(shí)例代碼,需要的朋友們學(xué)習(xí)下。2019-05-05Python中Yield的基本用法及Yield與return的區(qū)別解析
Python中有一個(gè)非常有用的語(yǔ)法叫做生成器,用到的關(guān)鍵字就是yield,這篇文章主要介紹了Python中Yield的基本用法及Yield與return的區(qū)別,需要的朋友可以參考下2022-10-10Python調(diào)用另一個(gè)py文件并傳遞參數(shù)常見(jiàn)的方法及其應(yīng)用場(chǎng)景
這篇文章主要介紹了在Python中調(diào)用另一個(gè)py文件并傳遞參數(shù)的幾種常見(jiàn)方法,包括使用import語(yǔ)句、exec函數(shù)、subprocess模塊、os.system函數(shù)以及argparse模塊,每種方法都有其適用場(chǎng)景和優(yōu)缺點(diǎn),需要的朋友可以參考下2025-01-01