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

如何将含非唯一索引的Pandas DataFrame转换为唯一索引的DataFrame?

问题原因与解决方法

你的问题核心是DataFrame存在重复索引:总索引数远大于唯一索引数,说明大量索引值重复。当你用df['order_number'][0]查询时,Pandas会返回所有索引值为0的行,而非你预期的单行。

验证重复索引

先执行以下代码确认重复情况:

# 统计重复索引的数量
print(df.index.duplicated().sum())
# 查看唯一索引的总数
print(len(df.index.unique()))

解决方法

场景1:索引无业务意义,直接重置为默认索引

如果索引只是行的标识、没有实际业务含义,直接重置为连续整数索引即可彻底解决问题:

df = df.reset_index(drop=True)

重置后使用df['order_number'][0]就能精准返回第一行的对应值。

场景2:索引有业务意义,需保留但避免查询歧义

如果索引本身有业务价值不能删除,改用**位置索引iloc**来定位行(iloc是按行的物理位置查询,和索引值无关):

# 取物理位置第1行的order_number列
df['order_number'].iloc[0]
# 更规范的写法
df.iloc[0]['order_number']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:35:22