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