如何在Jupyter Notebook中转置DataFrame的部分数据?
解决方法
你需要的是将长格式数据转换为宽格式,而非直接对整个DataFrame转置。用Pandas的pivot()方法就能精准实现需求,且适配你这种大型数据集:
代码实现
假设数据集已加载为Pandas DataFrame df,执行以下代码:
# 重塑数据:Region作为行,Date作为列,填充对应Value pivoted_df = df.pivot(index='Region', columns='Date', values='Value') # 将Region从索引转回普通列 pivoted_df = pivoted_df.reset_index() # 移除列名的层级标签(可选,让输出更整洁) pivoted_df.columns.name = None
代码说明
pivot(index='Region', columns='Date', values='Value'):指定以Region为行分组依据,Date的不同取值作为新列,Value填充对应位置的数值,完全匹配你要的输出结构。reset_index():因为pivot会把Region设为索引,这一步将它转回普通列,和示例输出一致。- 移除
columns.name是为了去掉输出中列名上方的Date标签,让表头更简洁。
特殊情况处理
如果数据中存在同一Region+Date组合对应多个Value的情况,改用pivot_table()并指定聚合函数(比如取均值):
pivoted_df = df.pivot_table(index='Region', columns='Date', values='Value', aggfunc='mean').reset_index() pivoted_df.columns.name = None
内容的提问来源于stack exchange,提问作者uglysoup
相关产品推荐
相关产品推荐

