如何将Pandas中groupby().value_counts()生成的Series转换为多列DataFrame
你当前通过groupby + value_counts得到的是带有两层MultiIndex(第一层为run字段值,第二层为chip字段值)的Series,要转换成你需要的宽表格式,直接调用unstack()方法即可:
# 直接展开最后一级索引为列,缺失计数默认填充为0 result = s.unstack(fill_value=0) # 如果需要把run从索引转为普通列,追加调用reset_index()即可 result = s.unstack(fill_value=0).reset_index()
你也可以跳过中间步骤,直接一步生成目标格式结果:
import pandas as pd result = pd.crosstab(index=df['run'], columns=df['chip'])
两种方法输出的结果都符合要求:行对应不同的run取值,列对应不同的chip取值,单元格值为对应分组下该chip出现的次数。
内容的提问来源于stack exchange,提问作者steve workspace
相关产品推荐
相关产品推荐

