各位老师pandas在for循环下为何只能保存最后一条数据
我的代码是这样的import pandas as pd,numpy as np
for i in range(10):
writer = pd.ExcelWriter('abc.xlsx', mode='w')
df = pd.DataFrame(np.random.randint(0,12,size=(3,4)))
df.to_excel(writer,sheet_name='a')
writer.save()
每次保存只能保存最后一次循环的3行数据,这种情况下能否保存所有10次循环的数据。谢谢老师帮我看看谢谢了
你不觉得每次都以写模式打开相同的xlsx文件会被覆盖吗,打开文件和保存的操作应该放在循环外 hrpzcf 发表于 2022-6-9 20:53
你不觉得每次都以写模式打开相同的xlsx文件会被覆盖吗,打开文件和保存的操作应该放在循环外
谢谢老师我试试看 把代码改成这样试试看
import pandas as pd,numpy as np
for i in range(10):
writer = pd.ExcelWriter('abc.xlsx', mode='a')
df = pd.DataFrame(np.random.randint(0,12,size=(3,4)))
df.to_excel(writer,sheet_name='a')
writer.save()
hrpzcf 发表于 2022-6-9 20:53
你不觉得每次都以写模式打开相同的xlsx文件会被覆盖吗,打开文件和保存的操作应该放在循环外
老师能否再给点提示。我尝试了将保存和打开文件移到for循环外。但保存的还是最后3行数据。谢谢了 临时号 发表于 2022-6-9 21:10
把代码改成这样试试看
谢谢老师这样能将数据分别写入到10个sheet中,我想一次性写入到一个sheet页中不知道行不行就是10组数据在一个sheet表中。
本帖最后由 临时号 于 2022-6-9 21:42 编辑
改成这样试试
import pandas as pd,numpy as np
writer = pd.ExcelWriter('abc.xlsx', mode='a')
for i in range(10):
df = pd.DataFrame(np.random.randint(0,12,size=(3,4)))
df.to_excel(writer,sheet_name='a')
writer.save() redaiconglin 发表于 2022-6-9 21:28
谢谢老师这样能将数据分别写入到10个sheet中,我想一次性写入到一个sheet页中不知道行不行就是10组数据在 ...
试试我7楼的代码 临时号 发表于 2022-6-9 21:39
改成这样试试
老师使用mode=‘a’追加模式会报错提示文件未找到。如果使用mode=‘a+’这个模式也会报错搞不明白什么原因 初始化一个矩阵,例如a = b.head(0),然后写入的话用append,例如a = c.append(d),试试看
御行黑达摩 发表于 2022-6-9 22:33
初始化一个矩阵,例如a = b.head(0),然后写入的话用append,例如a = c.append(d),试试看
好的谢谢老师我试试
页:
[1]