如何将数据帧拆分为行数相等的多个数据帧并导出xls文件?

时间:2020-07-23 03:51:24

标签: python pandas

输入

    id 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ……

尝试

def split_equal(f,number_of_chunks):
    df=pd.read_excel(f,encoding='gbk')
    number_of_chunks=len(df)//number_of_chunks
    for id, df_i in  enumerate(np.array_split(df, number_of_chunks)):
        df_i.to_excel('f_{id}.xls'.format(id=id),index=False)

例如,我想分割数字行为1000的数据帧,如果其余行小于1000,它仍会返回较小的文件。

如果df的长度是25314,则通过我的函数它将1014行返回到较小的数据帧中。我不知道该如何解决。

1 个答案:

答案 0 :(得分:1)

您在这里= ^ .. ^ =

import pandas as pd

df = pd.read_excel('data.xlsx')


def split(df, lines_number):
    if lines_number < df.shape[0]:
        for i in range(0, int(df.shape[0]/lines_number) + 1, 1):
            new_df = df.iloc[i*lines_number:i*lines_number+lines_number]
            new_df.to_excel('file_' + str(i) + '_.xls', index=False)


lines_number = 10
split(df, lines_number)