首页 > 解决方案 > 根据过滤条件编写具有动态工作表名称的excel文件

问题描述

我有一个小问题。

我正在尝试将完成的 excel 文件写入 Pandas DataFrame 并根据过滤条件创建不同的工作表名称:

#I created a variable to give me the unique names in the column I want to filter
Different_Versicherer = commissions_df.Versicherer.unique()

# I create an empty list to hold the frames
Versicherer = []*len(Different_Versicherer)

# I tried iterate through the unique column and do the filtering. 
for i in range(len(Different_Versicherer)):
    Versicherer[i] = commissions_df[commissions_df.Versicherer == Different_Versicherer[i]]

过滤的想法有效,无效的是我想动态地更改工作表并将其添加到 excel 文件中。

请问你能建议吗?

标签: pythonpandasdataframedata-manipulation

解决方案


没有示例数据很难给出答案,但我认为你想要这样的东西:

import pandas as pd
df = pd.DataFrame({'var':['a','a','b','c','c','c'], 'value':[1, 2, 3, 4, 5, 6]})

writer = pd.ExcelWriter('example.xlsx')
for unique_var in df['var'].unique():
    frame = df[df['var'] == unique_var]
    frame.to_excel(writer, sheet_name=unique_var)
writer.save()

这将创建一个包含 3 张工作表('a'、'b'、'c')的 excel 文件,其中原始数据框经过过滤以匹配每种情况下的值。

这也可以使用 a 来完成groupby

for unique_var, frame in df.groupby('var'):
    # repeat code

推荐阅读