簡體   English   中英

根據過濾條件編寫一個帶有動態工作表名稱的excel文件

[英]Write an excel file with dynamic sheet names based on a filtering condition

我有一個小問題。

我正在嘗試將完成的 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文件中。

請問你能指教嗎?

沒有示例數據很難給出答案,但我認為您想要這樣的東西:

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 文件,並在每種情況下過濾原始數據框以匹配該值。

這也可以使用groupby來完成:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM