python + pandas - 将 df 转储到循环中的 excel

标签 python excel pandas dataframe

我有一个包含 100 个 panda dfs 的字典。

我想循环遍历字典中的每个 df 并将其转储到 Excel 中,全部在一张纸上,一个接一个,中间有 1 个空白行。

我的尝试:

writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
workbook = writer.book

for key, values in dd.iteritems():
    df = dd[key]['chart_data']
    df.to_excel(writer, sheet_name='Sheet 1', index=False)

writer.save()
workbook.close()

我认为它会覆盖 dfs。

有什么建议吗?

最佳答案

startrow 听起来像是您的解决方案:

start_row = 0
for key, values in dd.iteritems():
    df = dd[key]['chart_data']
    df.to_excel(writer, sheet_name='Sheet 1', index=False, startrow=start_row)
    # Edited to respect your requirement for 1 blank row
    # after each df
    start_row = start_row + len(df) + 1 # or df.shape[0] et cetera

它只是选择开始转储到哪一行。您可能还想指定 startcol,它的工作原理相同,但我认为这按原样工作。

编辑:另一种也许更好的方法是concat。像这样的东西:

df = pd.concat([dd[key]["chart_data"] for key, values in dd.iteritems()])
df.to_excel(...)

但只有当您的 df 适合内存时,这才有效。

关于python + pandas - 将 df 转储到循环中的 excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53339519/

相关文章:

python - 无法使用字典中的函数

Python 2.7 版本没有 http.client 模块

python - Django - 如何将模型传递给 CreateView

python - 如何从 Python 中的 pandas 数据框中获取 networkx 图的分支作为列表?

python - 有没有一种有效的方法来合并 Pandas 中两个排序的数据帧,保持排序?

python - 如何通过 Python urllib 将 JSON 数据发送到 Django 应用程序?

arrays - 使用 Excel VBA 检查某个值是否在数组中

VBA 和事件目录 : Windows group visible in manual search dialog but VBA script throws error

vba - 给数组赋值时出现类型不匹配错误

python - 使用 np.where 匹配 pandas 单元格中的值,其中值是数组(ValueError : Arrays were different lengths)