输入
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行返回到较小的数据帧中。我不知道该如何解决。
答案 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)