首页 > 解决方案 > xlsxwriter:根据数据框排序值创建多个工作表

问题描述

根据数据框中的 SORTED 值在 Excel 工作簿中创建多个工作表的替代方法是什么?在这种特定情况下,我想在 Excel 中为按性别和身高排序的每个名称创建多个工作表。

下面的代码返回“unhashable type: 'list'”类型的错误,因为列表无法排序。

import pandas as pd
import xlsxwriter as xl

dictionary = {"Name": ["Peter", "John", "Paula", "Simon", "Jess"],
             "Sex": ["M", "M", "F", "M", "F"],
            "Height": [190, 175, 178, 182, 163]}

df = pd.DataFrame(dictionary)


wsname = "Test Excel Sheet.xlsx"
writer = pd.ExcelWriter(wsname, engine = "xlsxwriter")
workbook = writer.book
worksheet = writer.sheets
df.sort_values(["Sex", "Height"], ascending =[False, False]).to_excel(writer)

# Create sorted (by Sex and Height) sheets for each Name in the output spreadsheet
names = df["Name"].sort_values(["Sex", "Height"], ascending =[False, False])

for name in names:
    workbook.add_worksheet(name)

writer.save()

是否有可能循环遍历数据框中已经导出的结果?

标签: pythonexcelpandas

解决方案


推荐阅读