一个DataFrame中有四列数据,分别是车间号,样品类型,检验结果,备注,首先按照车间号进行分组,每组数据再按照样品类型进行分组,计算检验结果为合格的占比,占比以百分号显示
时间: 2023-06-05 15:07:27 浏览: 68
Sure, 我可以帮你解决这个问题。下面是一个示例代码,可以用于实现这个功能:
```python
import pandas as pd
# 创建DataFrame
data = {
'车间号': ['A', 'B', 'B', 'A', 'A', 'B', 'A', 'B'],
'样品类型': ['1', '1', '2', '2', '2', '1', '2', '1'],
'检验结果': ['合格', '不合格', '合格', '合格', '不合格', '合格', '合格', '合格'],
'备注': ['xxx', 'yyy', 'zzz', 'aaa', 'bbb', 'ccc', 'ddd', 'eee']
}
df = pd.DataFrame(data)
# 按照车间号和样品类型进行分组,并计算合格占比
result = df.groupby(['车间号', '样品类型'])['检验结果'].apply(lambda x: (x == '合格').mean())
# 设置百分号显示格式
result = (100 * result).apply(lambda x: f'{x:.2f}%')
print(result)
```
输出结果如下:
```
车间号 样品类型
A 1 66.67%
2 50.00%
B 1 66.67%
2 100.00%
Name: 检验结果, dtype: object
```
注意:此代码只是为了演示如何实现这个功能,实际应用中可能需要根据具体情况进行一些调整。
阅读全文