python使用pandas按照行數(shù)分割表格
問(wèn)題
- 一張excel表格,大概1萬(wàn)行,需要錄入系統(tǒng)
- 系統(tǒng)每次最多只能錄入500行表格數(shù)據(jù),一旦超過(guò)500行,就會(huì)錄入失敗
- 需要把1萬(wàn)行的數(shù)據(jù)按照500行分割,形成20個(gè)表格,這樣才能錄入系統(tǒng)
思路
- 使用pandas得到總行數(shù),比如10002行,分割表格的時(shí)候,要保留一行表頭
- 第一張表,是1-500行,第二張表是 501-1000,以此類推
- 最后一張表應(yīng)該是1000-10002行,生成的表格數(shù)量是10000/500+1,21張
- 生成的表格按照順序保存到一個(gè)目錄中
- 寫(xiě)一個(gè)函數(shù),可以按照任意指定的分割數(shù)量進(jìn)行分割。
代碼實(shí)現(xiàn)
#按行數(shù)分割表格函數(shù) #問(wèn)題 #1.如果有有一個(gè)十萬(wàn)行表格,要錄入系統(tǒng),但是系統(tǒng)每次最多只能錄入500行? #解決問(wèn)題: #1.按照指定的行數(shù)分割表格 #2.分割出來(lái)的表格按照序號(hào)命名 import pandas as pd import os def SplitExcel(file,num): file_dir='result' #創(chuàng)建目錄 if os.path.isdir(file_dir): os.rmdir(file_dir) else: os.mkdir(file_dir) n = 1 row_list = [] df = pd.DataFrame(pd.read_excel(file, sheet_name=0)) row_num = int(df.shape[0]) # 獲取行數(shù) if num >= row_num: #如果分割行數(shù)大于總行數(shù),報(bào)錯(cuò) raise Exception('too much!!') try: for i in list(range(num,row_num,num)): row_list.append(i) row_list.append(row_num) # 得到完整列表 except Exception as e: print (e) (name,ext)=os.path.splitext(file) #獲取文件名 for m in row_list: filename=os.path.join(file_dir,name+'-' + str(n) + '.xlsx') if m <row_num: df_handle=df.iloc[m-num:m] #獲取n行之前 print (df_handle) df_handle.to_excel(filename , sheet_name='sheet1',index=False) elif m == int(row_num): remainder=int(int(row_num)%num) #余數(shù) df_handle=df.iloc[m-remainder:m] #獲取最后不能整除的行 df_handle.to_excel(filename , sheet_name='sheet1', index=False) n = n + 1 if __name__=='__main__': file= 'result.xls' SplitExcel(file,num=10)
測(cè)試效果
一張83行的表格,去除表頭,一共82行,按照10行分割,一共要獲得9張表格,最后一張表格,應(yīng)該只有兩行,中間的表格,數(shù)據(jù)必須是連續(xù)的,
分割前
分割后
到此這篇關(guān)于python使用pandas按照行數(shù)分割表格的文章就介紹到這了,更多相關(guān)pandas按行分割表格內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python調(diào)用VBA實(shí)現(xiàn)保留原始樣式的表格合并方法
本文主要介紹了Python調(diào)用VBA實(shí)現(xiàn)保留原始樣式的表格合并方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Python OpenCV實(shí)現(xiàn)邊緣檢測(cè)
這篇文章主要為大家詳細(xì)介紹了Python OpenCV實(shí)現(xiàn)邊緣檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08python實(shí)現(xiàn)猜數(shù)游戲(保存游戲記錄)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)猜數(shù)游戲,保存游戲記錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06Django框架之DRF 基于mixins來(lái)封裝的視圖詳解
今天小編就為大家分享一篇Django框架之DRF 基于mixins來(lái)封裝的視圖詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07基于Opencv制作的美顏相機(jī)帶你領(lǐng)略美顏特效的效果
最關(guān)于美顏類相機(jī)最重要的是第一步:人臉檢測(cè),本篇文章中是采用openCV開(kāi)源庫(kù)實(shí)現(xiàn),文中給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值2021-09-09深度學(xué)習(xí)TextRNN的tensorflow1.14實(shí)現(xiàn)示例
這篇文章主要介紹了深度學(xué)習(xí)TextRNN的tensorflow1.14實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01