#按行數分割表格函數
#問題
#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)
到此這篇關于python使用pandas按照行數分割表格的文章就介紹到這了,更多相關pandas按行分割表格內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!