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

如何使用Pandas根据列值重新调整DataFrame的行顺序?

解决方案

你的问题出在直接通过pd.DataFrame构造器修改索引只会替换索引标签,不会重新排列数据行。下面分两种场景给出正确实现方式:

场景1:ID是普通列

如果你的ID是DataFrame的一列(原数据索引为默认的0、1、2),按以下步骤调整:

import pandas as pd

# 原数据构造示例
data = {
    "ID": ["AA", "BB", "CC"],
    "Q1": [1, 5, 6],
    "Q2": [2, 5, 7],
    "Q3": [4, 5, 7]
}
df = pd.DataFrame(data)

# 1. 将ID列设为索引
df = df.set_index("ID")
# 2. 按指定顺序重新排列行
df = df.reindex(["BB", "CC", "AA"])
# 可选:把ID转回普通列
df = df.reset_index()

场景2:ID已经是索引

如果ID本身就是DataFrame的索引(原数据索引为["AA", "BB", "CC"]),直接用reindex即可:

# 原数据构造示例
data = {
    "Q1": [1, 5, 6],
    "Q2": [2, 5, 7],
    "Q3": [4, 5, 7]
}
df = pd.DataFrame(data, index=["AA", "BB", "CC"])

# 直接按指定顺序重排
df = df.reindex(["BB", "CC", "AA"])

关键说明

reindex方法会根据传入的索引列表,匹配并重新排列对应的数据行,这才是调整行顺序的正确逻辑;而直接修改索引标签只会改变行名,不会挪动数据位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 15:08:32