You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas 1.2.5使用pivot_table时如何保留数据初始顺序

pandas 1.2.5版本pivot_table保留原始数据顺序方案

pivot_table 默认会对生成的行、列索引做升序排列,1.2.5版本未提供内置的顺序保留参数,无需提前获知索引字段的取值排列,按以下步骤操作即可对齐原始数据顺序:

  • 第一步:用pd.unique()提取作为透视行索引的字段在原始数据中的首次出现顺序,该方法会按数据实际出现的先后顺序返回去重值,不需要手动指定排序规则
  • 第二步:正常执行pivot_table逻辑,完成后用提取到的原始顺序对结果调用reindex()重排索引,即可得到和原始数据顺序一致的透视结果

代码示例

原始测试数据:

import pandas as pd

data = pd.DataFrame(data={
'x_values':[13.4, 13.08, 12.73],
'y_values': [1.54, 1.47, 1.46],
'experiment':['e', 'e', 'e']})

修正后的透视代码:

# 提取x_values原始出现顺序
original_x_order = pd.unique(data['x_values'])

# 透视后按原始顺序重排行
pivot_result = pd.pivot_table(
    data, 
    index='x_values', 
    columns='experiment', 
    values='y_values'
).reindex(original_x_order)

运行后得到的结果和原始数据行顺序完全一致:

experiment     e
x_values        
13.40       1.54
13.08       1.47
12.73       1.46

补充说明

  • 如果需要保留透视列的原始顺序,用相同逻辑提取列字段的pd.unique()结果,传入reindex()的columns参数即可
  • 该方案兼容所有pandas版本,不依赖高版本专属参数,适配无法升级pandas版本的生产环境

内容的提问来源于stack exchange,提问作者olivier dadoun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:42:58