拆分成块后缺少行

问题描述

我正在尝试将数据帧拆分为 2000 行的块,我找到了这段代码,顺便说一句,我是 python 新手,它运行良好,但是最后一个数据帧 它创建并导出到 excel,它全都是乱码,我的意思是从第一个块到最后一个之前的一个块,它按字母顺序排列,除了最后一个我发现所有乞讨字母的地方,但它变得更糟.. . 我丢失了一些记录,我用这些块的来源数据框验证了这一点,但是在它被分割后丢失了

max_rows = 2000
dataframes = []
while len(df_count) > max_rows:
    top = df_count[:max_rows]
    dataframes.append(top)
    df_count = df_count[max_rows:]
    n=0
else:
    dataframes.append(df)

with pd.ExcelWriter(output_path + "\\" + "Emails_" + date + ".xlsx") as writer:
    for _,frame in enumerate(dataframes):
        frame = frame["Email"]
        frame.to_excel(writer,sheet_name="DB" + str(_+1),index=False)

解决方法

我完全没有在 else 上看到数据框名称:

max_rows = 2000
dataframes = []
while len(df_count) > max_rows:
    top = df_count[:max_rows]
    dataframes.append(top)
    df_count = df_count[max_rows:]
    n=0
else:
    dataframes.append(df_count)

with pd.ExcelWriter(output_path + "\\" + "Emails_" + date + ".xlsx") as writer:
    for _,frame in enumerate(dataframes):
        frame = frame["Email"]
        frame.to_excel(writer,sheet_name="DB" + str(_+1),index=False)
,

使用 iloc 拆分数据框:

df = pd.DataFrame(np.arange(10**6+10).reshape(int(10**6/2)+5,2),columns=list('AB'))

df.shape # (500005,2)

df_list = list()
max_row = 2000
for i in range(0,len(df),2000):
    df_list.append(df.iloc[i: i + max_row])

len(df_list) # 251