python實(shí)現(xiàn)Excel文件轉(zhuǎn)換為TXT文件
在處理數(shù)據(jù)的時(shí)候經(jīng)常需要讀取TXT文件類型的數(shù)據(jù)轉(zhuǎn)換為可執(zhí)行的list,但是當(dāng)我們有Excel的文件,如何將Excel文件轉(zhuǎn)換為每行固定長度的TXT文件呢!如果數(shù)據(jù)量很少的情況下,人工處理還好,可是在大數(shù)據(jù)的情況下就顯得不可能了,這時(shí)如果我們利用程序執(zhí)行這一命令就輕松多了,廢話不多說,下面介紹代碼。
首先在python中import兩個(gè)必要的包(我們面向的對(duì)象是.csv的Excel文件)
import numpy as np import csv
接下來,就是讀取Excel文件,在讀取的文件路徑上本文采用絕對(duì)路徑的方式:
with open('F:/Data/DATA/airquality1.csv','rb') as csv_file: all_lines = csv.reader(csv_file) for one_line in all_lines: list_file.append(one_line) #逐行讀取Excel文件中的每一行append列表中 list_file.remove(list_file[0]) #該行表示我們?nèi)コ鼸xcel文件的第一行,因?yàn)榈谝恍型际菙?shù)據(jù)的名稱介紹,如果沒有介紹就不用該行代碼了 arr_file = np.array(list_file) #轉(zhuǎn)換為矩陣形式 label = arr_file[:,0] #第一列 //該行表示我們?nèi)xcel文件中第一列數(shù)據(jù)進(jìn)行實(shí)驗(yàn),下述貼出數(shù)據(jù)樣式(或者Excel只有第一列有數(shù)據(jù))
然后進(jìn)行一次額外的篩選,篩選的目的是因?yàn)槲覀兯杉降臄?shù)據(jù)中一般都有一些數(shù)據(jù)缺失的情況,也就是顯示為“NULL”的情況,或者其他的形式,可以根據(jù)自己數(shù)據(jù)的缺失情況進(jìn)行靈活更改(如果沒有數(shù)據(jù)缺失這部分代碼就不需要了):
for i in range(len(label)): if label[i] == 'NULL': #注意我們文件中數(shù)據(jù)缺失時(shí)記錄為“NULL”,注意替換 label[i] = label[i -1]
上述步驟已經(jīng)完成了在Excel上的各種操作,接下來就是將我們讀取到的Excel文件存儲(chǔ)到指定的TXT文件中了:
file = open("F:/Data/DATA/airquality48.txt", "w") for n in range(int(len(label)/48)): #該行命令用來計(jì)算數(shù)據(jù)的長度,因?yàn)槲覀円鎯?chǔ)的TXT文件中要使得每行包含48個(gè)數(shù)據(jù),所以這里使用48 file.write(label[n*48:n*48+48]) #將提取好的數(shù)據(jù)寫入到TXT文件中 file.write('\n') #注意轉(zhuǎn)換后文件最后一行空白需要?jiǎng)h除(寫完48個(gè)數(shù)據(jù)進(jìn)行換行)
好了,上述就行所描述的程序步驟,下面用結(jié)果展示下本程序所使用的數(shù)據(jù)樣式及運(yùn)行結(jié)果,為了避免出錯(cuò)先完整的貼下整體程序:
# EXCEL.CSV文件轉(zhuǎn)換成TXT # import numpy as np import csv def loadCSVfile1(): list_file = [] with open('F:/Data/DATA/airquality1.csv','rb') as csv_file: all_lines = csv.reader(csv_file) for one_line in all_lines: list_file.append(one_line) list_file.remove(list_file[0]) arr_file = np.array(list_file) label = arr_file[:,0] #第一列 # 處理文件中null情況 for i in range(len(label)): if label[i] == 'NULL': label[i] = label[i -1] #將數(shù)據(jù)以天為單位寫入TXT文件中 file = open("F:/Data/DATA/airquality48.txt", "w") for n in range(int(len(label)/48)): file.write(label[n*48:n*48+48]) file.write('\n') #注意轉(zhuǎn)換后文件最后一行空白需要?jiǎng)h除 return label loadCSVfile1()
本程序所使用的Excel數(shù)據(jù)樣式為:
程序的運(yùn)行結(jié)果將轉(zhuǎn)換為下述TXT樣式(每行包含48個(gè)數(shù)據(jù)):
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python無法引用另一個(gè)文件夾的py文件問題及解決
這篇文章主要介紹了python無法引用另一個(gè)文件夾的py文件問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python面向?qū)ο髮?shí)現(xiàn)方法總結(jié)
這篇文章主要介紹了Python面向?qū)ο髮?shí)現(xiàn)方法總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Python+matplotlib實(shí)現(xiàn)量場圖的繪制
matplotlib是基于Python語言的開源項(xiàng)目,pyplot提供一系列繪制2D圖形的方法。本文將帶大家學(xué)習(xí)matplotlib.pyplot.quiver()相關(guān)方法屬性并通過其繪制量場圖2021-12-12Python?Streamlit實(shí)現(xiàn)文件的上傳和下載功能
在Web應(yīng)用中,文件的上傳下載是交互中不可缺少的功能,這篇文章主要為大家介紹了如何在Streamlit應(yīng)用中實(shí)現(xiàn)文件的上傳和下載功能,感興趣的可以了解下2024-12-12python實(shí)現(xiàn)畫出e指數(shù)函數(shù)的圖像
今天小編就為大家分享一篇python實(shí)現(xiàn)畫出e指數(shù)函數(shù)的圖像,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11