如何在excel中从python数据框中写入不超过一百万条记录

时间:2018-07-09 10:08:07

标签: python pandas

我有一个带有超过5000万条记录的python数据框。我想将它们写到Excel工作表中,每个工作表中的记录应不超过一百万。

3 个答案:

答案 0 :(得分:0)

一个想法是将您的df分成一个列表内的50 df,然后:

for i in range(50):
    list[i].to_excel("file.xlsx", sheet_name = f"Sheet{i+1}")

答案 1 :(得分:0)

您可以使用.iloc访问数据的某些行,然后将它们转储到Excel。这是一个示例,其中每张纸发布1000行,当您将其增加到1000000时,将应用相同的基本思想:

import pandas as pd

df = pd.DataFrame({'Val': [i for i in range(5000)]})

GROUP_LENGTH = 1000

writer = pd.ExcelWriter('test.xlsx')

for i in range(0, len(df), GROUP_LENGTH):
    print(i)
    df.iloc[i:i+GROUP_LENGTH,].to_excel(writer, sheet_name='Row {}'.format(i))

writer.save()
writer.close()

答案 2 :(得分:0)

首先将您拥有的数据分割并保存在各种变量中……在这里,我从数据库中提取了250万数据,并将它们分割为三个(根据您的情况需要)变量...

pserializer=fetchdataSerializers(all_dataobj,many=True)
res = [item for item in pserializer.data if 1 <= item.get('id') <= 1000000]   
res1 = [item for item in pserializer.data if 1 <= item.get('id') > 1000000 and 
item.get('id') <= 2000000 ]  
res2 = [item for item in pserializer.data if 1 <= item.get('id') > 2000000] 

然后声明三个(根据情况需要的数量)不同的数据帧.....

df = pd.DataFrame([])
df1 = pd.DataFrame([])
df2 = pd.DataFrame([])

然后将它们附加并写入具有三个(根据情况需要的情况)不同子表的excel表中。

df = df.append(res)
df1 = df1.append(res1)
df2 = df2.append(res2)

writer = ExcelWriter('fetchdata_sheet15.xlsx')

df.to_excel(writer,'Sheet1',index=False)

df1.to_excel(writer,'Sheet2',index=False)

df2.to_excel(writer,'Sheet3',index=False)

writer.save()

就是这样。检查它是否对您有用...谢谢。