首页 > 解决方案 > 将数据框转换为特定的 Excel 工作表格式

问题描述

我有以下带有列标题的数据框:S_NAME、S_ID、TYPE_NAME、TYPE_ID

AD EXTRACT,181,ABSORB,174
AD EXTRACT,181,VOLUME,107
ACD EXTRACT,129,CLAIM,136
ACD EXTRACT,129,COURSE,203
AV EXTRACT,105,BOOK,708
AV EXTRACT,105,PROTEIN,125

我需要这种格式的输出 .xlsx

每个唯一的 S_NAME 应该在同一个 excel 文件中具有单独的工作表,并且每个工作表都应该具有各自的 S_ID、TYPE_NAME、TYPE_ID,如输出图像中所示。

有人可以帮助如何在 Pandas 中实现这一点。作为初学者,我尝试了 dict 但没有帮助

import pandas as pd
df = pd.read_csv('input.csv', sep=',', names=['S_NAME', 'S_ID', 'TYPE_NAME', 'TYPE_ID'])
df_dict = dict(zip([i for i in df.columns] , [pd.DataFrame(df[i].unique(), columns=[i]) for i in df.columns]))

标签: pythonpandasdataframe

解决方案


openpyxl如果需要,安装并尝试:

with pd.ExcelWriter("output.xlsx") as writer:
    for name, frame in df.groupby("S_NAME"):
        frame.drop("S_NAME", axis=1).to_excel(writer, sheet_name=name, index=False)

推荐阅读