溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python怎么用pandas按照行數(shù)分割表格

發(fā)布時間:2021-08-13 13:33:15 來源:億速云 閱讀:1048 作者:chen 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“python怎么用pandas按照行數(shù)分割表格”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“python怎么用pandas按照行數(shù)分割表格”吧!

目錄
  • 問題

  • 思路

  • 代碼實現(xiàn)

  • 測試效果

問題

  • 一張excel表格,大概1萬行,需要錄入系統(tǒng)

  • 系統(tǒng)每次最多只能錄入500行表格數(shù)據(jù),一旦超過500行,就會錄入失敗

  • 需要把1萬行的數(shù)據(jù)按照500行分割,形成20個表格,這樣才能錄入系統(tǒng)

思路

  • 使用pandas得到總行數(shù),比如10002行,分割表格的時候,要保留一行表頭

  • 第一張表,是1-500行,第二張表是 501-1000,以此類推

  • 最后一張表應(yīng)該是1000-10002行,生成的表格數(shù)量是10000/500+1,21張

  • 生成的表格按照順序保存到一個目錄中

  • 寫一個函數(shù),可以按照任意指定的分割數(shù)量進行分割。

代碼實現(xiàn)

#按行數(shù)分割表格函數(shù)
#問題
#1.如果有有一個十萬行表格,要錄入系統(tǒng),但是系統(tǒng)每次最多只能錄入500行?
#解決問題:
#1.按照指定的行數(shù)分割表格
#2.分割出來的表格按照序號命名
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ù),報錯
        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)

測試效果

一張83行的表格,去除表頭,一共82行,按照10行分割,一共要獲得9張表格,最后一張表格,應(yīng)該只有兩行,中間的表格,數(shù)據(jù)必須是連續(xù)的,

分割前

python怎么用pandas按照行數(shù)分割表格

python怎么用pandas按照行數(shù)分割表格

分割后

python怎么用pandas按照行數(shù)分割表格

python怎么用pandas按照行數(shù)分割表格

python怎么用pandas按照行數(shù)分割表格

到此,相信大家對“python怎么用pandas按照行數(shù)分割表格”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI