openpy读取Excel表格,选中要进行分组的多列B列、F列、J列,按照选中的多列对工作表进行分组,使用aggregate函数将分组后的结构写入excel文件并保存
时间: 2023-06-07 21:11:49 浏览: 49
好的,我可以帮您解决这个问题。首先,您需要使用openpyxl库来读取Excel文件。然后,您可以使用pandas库来进行分组,并使用agg函数来应用聚合函数。最后,您可以使用openpyxl再次编写Excel文件。
下面是一段代码示例:
```python
import openpyxl
import pandas as pd
# 打开Excel文件
workbook = openpyxl.load_workbook(filename='example.xlsx', read_only=True)
sheet = workbook.active
# 用pandas读取数据
df = pd.read_excel('example.xlsx')
# 按照多列进行分组,并应用聚合函数
grouped = df.groupby(['b', 'f', 'j']).agg({'a': 'mean', 'd': 'sum'})
# 重新将数据写入Excel文件
grouped.to_excel('result.xlsx', index=True, header=True)
```
请注意,这只是一个示例,您需要根据实际情况来修改代码。如果您遇到了任何问题,可以随时问我。
相关问题
openpy读取Excel表格,选中要进行分组的多列B列、F列、J列,按照选中的多列对工作表进行分组, 并将分组后的结果直接保存
在原有Excel表格中,你可以使用openpyxl库来读取Excel表格。然后选中要进行分组的多列,即B列、F列、J列,将其分组,并将分组后的结果直接保存在原有Excel表格中。下面是一个示例代码片段,供你参考:
``` python
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 选择要进行分组的列
cols_to_group = ['B', 'F', 'J']
# 循环遍历所有工作表
for ws in wb.worksheets:
# 选中要进行分组的多列
group_cols = []
for col in cols_to_group:
group_cols.append(ws[col])
# 进行分组
grouped = ws._current_object.pivot_table(group_cols)
# 将分组后的结果写入工作表
ws._current_object.clear()
ws._current_object.append(grouped)
# 保存Excel文件
wb.save('example.xlsx')
```
openpy读取Excel表格,选中要进行分组的多列B列、F列、J列,按照选中的多列对工作表进行分组,将分组后的结构写入excel文件并保存
答案:
好的,我明白你的问题。你可以使用openpyxl库中的pandas工具来实现这一操作。以下是代码示例:
```python
import pandas as pd
from openpyxl import load_workbook
# 打开Excel文件
wb = load_workbook(filename='example.xlsx')
# 选择要分组的列
cols_to_group = ['B', 'F', 'J']
# 读取工作表
ws = wb.active
# 将所选列中的数据存储在pandas DataFrame中
data = []
for row in ws.iter_rows(min_row=2, values_only=True):
data.append([row[i] for i in [1, 5, 9]])
df = pd.DataFrame(data, columns=cols_to_group)
# 分组
grouped = df.groupby(cols_to_group).size().reset_index(name='Count')
# 将分组数据写入Excel文件并保存
writer = pd.ExcelWriter('output.xlsx')
grouped.to_excel(writer, index=False)
writer.save()
```
这段代码将Excel文件中的B列、F列和J列中的数据存储在pandas DataFrame中,并按这三列进行分组。然后,分组数据将写入新的Excel文件(output.xlsx)中并保存。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)