python讀寫excel資料(list相關)

2021-08-16 11:30:25 字數 1695 閱讀 7867

順手幫朋友處理畢業資料寫的小指令碼,她的問題如下:

樣本前後順序是固定的。id是公升序排列之後的, time_dif表示時間差。想生成新變數count=所在的組裡樣本的數量。分組的依據為id 和 time_dif,分組規則為在同一id內,從第乙個樣本開始數,一直到下乙個time_dif>5之前的樣本分為一組。分組如圖所示:

朋友給的資料集裡開始已經經過了一些預處理,如下:

處理思路的話比較簡單,相當於在一列陣列裡,如果下乙個數較之上乙個數小,那麼這個數的值便是這一段小數列的count值,用兩個for迴圈既可以遍歷出結果,**如下:

#在這裡我們使用xlrd,xlsxwriter兩個包對xlsx進行處理,通過pip或者anaconda進行安裝即可

import xlrd

import xlsxwriter

excelfile=xlrd.open_workbook(r'c:\users\administrator\desktop\dataexample-excel.xlsx') #開啟目標處理xlsx

sheet=excelfile.sheet_by_index(0) #定位到索引為0的工作表,即第乙個工作表

cols=sheet.col_values(7) #取第8列的資料

del cols[0]

newcols =

groupnum = 1

num = 0

try:

for i in cols:

if (cols[num+1]>i):

groupnum=groupnum+1

num = num+1

else:

for i in range(0,groupnum) :

groupnum = 1;

num = num + 1

#遍歷到最後乙個數的時候會發生索引溢位,所以catch一下,不影響後續操作

except indexerror:

print newcols

#在寫入資料的時候,我本來是打算用xlwt的,但是由於處理的資料量較大,因此用xlwt會發生錯誤valueerror:row index (65536)not an intin range(65536),在查閱資料後選擇了xlsxwriter進行寫入,最大能夠支援1048576行資料,16384列資料。

workbook = xlsxwriter.workbook('result.xlsx') #生成**

worksheet = workbook.add_worksheet(u'sheet1') #在檔案中建立乙個名為test的sheet,不加名字預設為sheet1

worksheet.set_column('a:a',20) #設定第一列寬度為20畫素

bold=workbook.add_format() #設定乙個加粗的格式物件

for i in range(len(newcols)):

worksheet.write('a%s'%str(i+1),newcols[i]) #迴圈寫處理後的資料生成的列表

workbook.close()

參考文獻:

python讀寫操作excel資料

今天教務老師給我發來了一堆excel表 需要我處理一些資料 都是一些基礎的資料,這是今年來同濟參加夏令營的申請材料 在我按部就班的處理了幾個之後,覺得這樣處理實在是效率太低下了,於是我就寫了下面這個程式,用python 來批量化處理excel資料 首先 本科學校級別不同,985 211 會有不同的加...

讀寫Excel資料

獲取odbc中excel驅動 include include cstring cxxdlg getexceldriver pszbuf strchr pszbuf,0 1 while pszbuf 1 0 return sdriver 寫入excel void cxxdlg onwriteexcel...

python 遍歷讀寫excel

coding utf8 import xdrlib,sys import xlrd from zhudb import from zhu outlets class import from zhu telecom class import from datetime import datetime ...