【问题标题】:Python - Iterate through excel column values to split up into separate sheetsPython - 遍历 excel 列值以拆分为单独的工作表
【发布时间】:2020-12-07 08:27:20
【问题描述】:

我有一个包含不同列的 excel 文件,我想根据唯一的列值(在本例中为月份名称)将它们分成不同的工作表。因此将创建 12 个工作表,每个月一个。我当我在没有循环的情况下对其进行硬编码时让它工作了,但我宁愿通过一个列表循环它以节省时间。

我在 excel 文件中的当前输出一个名为“February”的工作表名称,其中包含整个数据集。

有人有什么想法吗?谢谢!

import xlrd
import xlsxwriter

df = pd.read_excel(r"PATH\data_test.xlsx", index_col = 0)
#writer = pd.ExcelWriter("Test3.xlsx", engine = 'xlsxwriter')
test_list = ['January', 'February']

for i in test_list:
    writer = pd.ExcelWriter("Test3.xlsx", engine='xlsxwriter')
    df.loc[i]
    df.to_excel(writer, sheet_name = i)
    print(i)
    writer.save()

df 的内容:

Month      Amount      
January       125
January        32
February       12
March          70
April          48
May            98
June          110
July            7
August        124
September      63
October        93
November        6
December      118


【问题讨论】:

  • 你能发布一个数据框的例子吗?你可以使用df.to_string()
  • 当然,我刚刚添加了它
  • 此问题与 Google 表格无关。

标签: python excel pandas list


【解决方案1】:

这样的事情应该可以工作:

groups = df.groupby("Month")
with pd.ExcelWriter("my_file.xls") as writer:
    for (name, df_group) in groups:
        df_group.to_excel(writer, sheet_name=name)

【讨论】:

  • 谢谢你。不幸的是,这导致了一个名为“September”的 Excel 表格,其中只有 9 月的正确值。
  • @Iain 应该被修复。
猜你喜欢
  • 2019-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-11
  • 1970-01-01
  • 2020-04-05
相关资源
最近更新 更多