如何在Python DataFrame中将列字段转换为多列并重组数据
解决方法
你要实现的是将长格式DataFrame转换为宽格式,用Pandas的pivot()方法就能轻松完成,步骤如下:
1. 核心代码
假设你已经导入了Pandas并创建了df1,直接运行以下代码:
import pandas as pd # 转换格式 df2 = df1.pivot( index='Load', # 以Load列的值作为行的唯一标识 columns='counter_name',# 将counter_name的取值转为新列名 values='counter_value' # 用counter_value的值填充对应位置 ).reset_index() # 把Load从索引转回普通列 # 移除列名上方的层级标签(让结果完全匹配你的需求格式) df2 = df2.rename_axis(None, axis=1)
2. 代码解释
pivot()是Pandas专门用于行列转换的函数,完美适配这种"一行对应单个属性"转"一行对应完整记录"的场景reset_index():默认pivot会把Load设为行索引,用这个方法可以把它变回普通列,和你要的df2结构完全一致rename_axis(None, axis=1):去掉列名顶部自动生成的counter_name标签,让列名直接显示为bytes_read、locks等
3. 最终结果
运行后得到的df2结构如下:
Load bytes_read bytes_written last_time locks 0 0 0 90 100 90 1 1 10 940 1100 910 2 2 11 910 1100 9120
内容的提问来源于stack exchange,提问作者user3555115
相关产品推荐
相关产品推荐

