使用 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
我有一系列 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