使用 XLSX Writer 将数据透视表 Table 写入 Excel 工作簿范围

Write Pivot Table to Excel Workbook Range using XLSX Writer

我有一系列 table 想要写入同一个工作表。唯一的其他 post 与此类似的是 here. I also looked here 但没有看到解决方案。

我希望出现与将 proc freq 结果发送到 excel 文件的 SAS ODS 输出代码类似的情况。我的想法是将 table 结果转换为新的数据框,然后将输出结果堆叠到工作表中。

pd.value_counts(df['name'])
df.groupby('name').aggregate({'Id': lambda x: x.unique()})

如果我知道 table 对应的行数,理想情况下我应该知道要写入的适当单元格范围。

我正在使用:

import xlsxwriter
workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()

tableone = pd.value_counts(df['name'])
tabletwo = df.groupby('name').aggregate({'Id': lambda x: x.unique()})

worksheet.write('B2:C15', tableone)
worksheet.write('D2:E15', tabletwo)

workbook.close()

编辑:包括 tableone

的视图

表一:

  Name           |        Freq
    A                       5
    B                       1
    C                       6
    D                       11
import xlsxwriter
workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()

tableone = pd.value_counts(df['name'])
tabletwo = df.groupby('name').aggregate({'Id': lambda x: x.unique()})


col = 1, row = 1 #This is cell b2
for value in tableone:
    if col == 16:
        row += 1
        col = 1
    worksheet.write(row,col, value)
    col += 1

col = 3, row = 1 #This is cell d2
for value in tabletwo:
    if col == 16:
        row += 1
        col = 1
    worksheet.write(row,col,value)
    col += 1