您好,登錄后才能下訂單哦!
本篇內容主要講解“python怎么用pandas按照行數分割表格”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python怎么用pandas按照行數分割表格”吧!
問題
思路
代碼實現
測試效果
一張excel表格,大概1萬行,需要錄入系統
系統每次最多只能錄入500行表格數據,一旦超過500行,就會錄入失敗
需要把1萬行的數據按照500行分割,形成20個表格,這樣才能錄入系統
使用pandas得到總行數,比如10002行,分割表格的時候,要保留一行表頭
第一張表,是1-500行,第二張表是 501-1000,以此類推
最后一張表應該是1000-10002行,生成的表格數量是10000/500+1,21張
生成的表格按照順序保存到一個目錄中
寫一個函數,可以按照任意指定的分割數量進行分割。
#按行數分割表格函數 #問題 #1.如果有有一個十萬行表格,要錄入系統,但是系統每次最多只能錄入500行? #解決問題: #1.按照指定的行數分割表格 #2.分割出來的表格按照序號命名 import pandas as pd import os def SplitExcel(file,num): file_dir='result' #創建目錄 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]) # 獲取行數 if num >= row_num: #如果分割行數大于總行數,報錯 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) #余數 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)
一張83行的表格,去除表頭,一共82行,按照10行分割,一共要獲得9張表格,最后一張表格,應該只有兩行,中間的表格,數據必須是連續的,
分割前
分割后
到此,相信大家對“python怎么用pandas按照行數分割表格”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。