python - 根据过滤条件编写具有动态工作表名称的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 文件中。
请问你能建议吗?
解决方案
没有示例数据很难给出答案,但我认为你想要这样的东西:
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
推荐阅读
- mysql - 如何仅根据 Laravel 7 中的 HTML 表单值更新特定列
- javascript - 使用 lodash 映射数据
- r - excel 中的自定义 H:M:S 字段类型,在 R 中加载时会留下 3 到 4 个整数。如何将其加载回原来的显示?
- c++ - 如何在 C++ 中定义通用接口
- r - 尝试在我的 netcdf 数据集的列表中创建一个列表
- vba - Word 2016-如何在受保护的文档中复制/粘贴选定的富文本内容控件-VBA?
- r - 是否有一种 R 方法可以保留数字并丢弃相同值的文本(例如 6 和一点)
- mysql - 如何同时运行 mysql Workbench 的 2 个选项?
- jsonata - JSONata 性能/效率假设
- flutter - 在 ChangeNotifier 的 addListener 回调中使用 setState