如何根据对应列的数值计数外推列值,生成新的DataFrame?
解决方案
你需要的是将长格式DataFrame转换为宽格式,直接用pandas的pivot方法即可实现,代码如下:
import pandas as pd # 如果你已经读入了源DataFrame,命名为df的话,直接执行以下代码即可 res_df = df.pivot(index='name', columns='subject', values='marks').reset_index() # 清除列索引的名称,输出格式更符合要求 res_df.columns.name = None
如果你的源数据中存在同一个人同一科目对应多条分数记录的情况,可以改用pivot_table指定聚合规则处理重复值:
res_df = df.pivot_table( index='name', columns='subject', values='marks', aggfunc='mean' # 可根据需求替换为sum、max等聚合函数 ).reset_index() res_df.columns.name = None
运行后输出的res_df就是你需要的结果格式。
内容的提问来源于stack exchange,提问作者Dhinesh Santhalingam
相关产品推荐
相关产品推荐

