将列的数值转换为列名columns

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/

posted @   兔子春  阅读(236)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示