import pandas as pd
dataframe = pd.read_csv("merge_yield.csv")
a = dataframe.iloc[:,1:]
a
|
ProductID |
LotID |
Mark LotID |
Pass |
Fail |
Yield |
Bin# |
| 0 |
1460A |
AL4578 |
#2 D7 |
54 |
11 |
0.830769 |
10 |
| 1 |
1460A |
AL4578 |
#2 D7 |
54 |
11 |
0.830769 |
10 |
| 2 |
1460A |
AL4578 |
#2 D7 |
54 |
11 |
0.830769 |
7 |
| 3 |
1460A |
AL4578 |
#2 D7 |
54 |
11 |
0.830769 |
10 |
| 4 |
1460A |
AL4578 |
#2 D7 |
54 |
11 |
0.830769 |
10 |
| ... |
... |
... |
... |
... |
... |
... |
... |
| 121 |
1460A |
AL4578 |
#2 D2 |
61 |
0 |
1.000000 |
10 |
| 122 |
1460A |
AL4578 |
#2 D2 |
61 |
0 |
1.000000 |
10 |
| 123 |
1460A |
AL4578 |
#2 D2 |
61 |
0 |
1.000000 |
10 |
| 124 |
1460A |
AL4578 |
#2 D2 |
61 |
0 |
1.000000 |
10 |
| 125 |
1460A |
AL4578 |
#2 D2 |
61 |
0 |
1.000000 |
10 |
126 rows × 7 columns
b= a.groupby(['ProductID','LotID','Mark LotID','Pass','Fail','Yield','Bin#'],as_index=False).size()
b
|
ProductID |
LotID |
Mark LotID |
Pass |
Fail |
Yield |
Bin# |
size |
| 0 |
1460A |
AL4578 |
#2 D2 |
61 |
0 |
1.000000 |
10 |
61 |
| 1 |
1460A |
AL4578 |
#2 D7 |
54 |
11 |
0.830769 |
7 |
11 |
| 2 |
1460A |
AL4578 |
#2 D7 |
54 |
11 |
0.830769 |
10 |
54 |
f = pd.pivot(b,index = ['ProductID','LotID','Mark LotID','Pass','Fail','Yield'], columns='Bin#') # 转换
f
|
|
|
|
|
|
size |
|
|
|
|
|
Bin# |
7 |
10 |
| ProductID |
LotID |
Mark LotID |
Pass |
Fail |
Yield |
|
|
| 1460A |
AL4578 |
#2 D2 |
61 |
0 |
1.000000 |
NaN |
61.0 |
| #2 D7 |
54 |
11 |
0.830769 |
11.0 |
54.0 |
f.columns = f.columns.droplevel() # 删除多层索引
f.columns = list(f.columns.values)
f.reset_index().fillna(0)
|
ProductID |
LotID |
Mark LotID |
Pass |
Fail |
Yield |
7 |
10 |
| 0 |
1460A |
AL4578 |
#2 D2 |
61 |
0 |
1.000000 |
0.0 |
61.0 |
| 1 |
1460A |
AL4578 |
#2 D7 |
54 |
11 |
0.830769 |
11.0 |
54.0 |
参考文章:
https://blog.csdn.net/weixin_44285988/article/details/111885047
https://www.codenong.com/22233488/