python获取excel数据,分别是车间号,取样时间,样品类型,检验结果,备注,先按照车间号进行分组,每组数据再按照样品类型分组,计算每组数据检验结果为合格的占比,结果以百分比显示,再计算每组数据备注含有脱镀字符的占比,再计算每组数据备注含有破断低字符的占比,再计算每组数据备注含有颗粒多字符的占比,再计算每组数据备注含有颗粒少字符的占比,再计算每组数据备注含有团聚字符的占比,均以百分比显示,然后输出数据透视表,以车间号为行索引,显示每组数据的个数,合格数据的个数,最后显示总体的合格占比,脱镀占比,破断低占比,颗粒多占比,颗粒少占比,团聚占比,最后将数据透视表保存到excel表中
时间: 2023-06-07 20:08:52 浏览: 80
python读取excel数据
好的,这个问题可以回答。您可以使用 pandas 和 openpyxl 库来实现这个功能。首先,您需要将 Excel 文件中的数据读取到 pandas 的 DataFrame 中。然后,您可以使用 groupby() 方法按照车间号和样品类型进行分组,并计算每组数据检验结果为合格的占比,以及备注中包含特定字符的占比。接着,您可以使用 pivot_table() 方法生成数据透视表,并将数据透视表保存到 Excel 文件中。下面是可能的实现方法:
```python
import pandas as pd
from openpyxl import Workbook
# 读取 Excel 文件中的数据到 DataFrame 中
df = pd.read_excel('your_excel_file.xlsx')
# 按照车间号和样品类型进行分组,并计算每组数据检验结果为合格的占比,
# 以及备注中包含特定字符的占比
grouped = df.groupby(['车间号', '样品类型']).agg({
'检验结果': lambda x: sum(x == '合格') / len(x) * 100,
'备注': lambda x: sum('脱镀' in c for c in x) / len(x) * 100,
'备注': lambda x: sum('破断低' in c for c in x) / len(x) * 100,
'备注': lambda x: sum('颗粒多' in c for c in x) / len(x) * 100,
'备注': lambda x: sum('颗粒少' in c for c in x) / len(x) * 100,
'备注': lambda x: sum('团聚' in c for c in x) / len(x) * 100
})
# 生成数据透视表,并将数据透视表保存到 Excel 文件中
pivot_table = pd.pivot_table(grouped, index=['车间号'], values=['检验结果', '备注'], aggfunc='sum')
file_name = 'output.xlsx'
with pd.ExcelWriter(file_name) as writer:
pivot_table.to_excel(writer, sheet_name='Sheet1')
```
输出的 Excel 表格将包含每组数据的个数、合格数据的个数以及占比,以及备注中特定字符的占比。
阅读全文