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

Python:如何快速移除DataFrame原索引并设置新索引?

问题:移除DataFrame中的原索引列并设置新索引

我的代码如下:

df['sway_diff'] = df['selfLR'] - np.where(df.vote.eq(0), df['ClinLR'], df['DoleLR'])
print(f"受访者的政治倾向与他们对意向候选人政治倾向印象的最大差异为 {df.sway_diff.max()}")
num_of_diff = len(df[df['sway_diff'] == 6])
print(f"有 {num_of_diff} 位受访者的差异达到这个数值。")

# 生成sway数据集
sway = df[df['sway_diff'].abs() >= 3]
sway = sway.reset_index()
sway.index += 1

print(f"{len(sway[sway['sway_diff'] < 0 ])} 位受访者更偏向自由派")
print(f"{len(sway[sway['sway_diff'] > 0 ])} 位受访者更偏向保守派")
print(f"{len(sway[sway['vote'] == 1])} 位受访者投票给多尔")
print(f"{len(sway[sway['vote'] == 0])} 位受访者投票给克林顿")

从df中提取得到的新DataFrame sway 保留了原df的索引列(截图显示数据集中存在原索引列),请问如何移除这些原索引列并设置新的连续索引?


解决方法

你现在用reset_index()时,默认会把原索引存成一列(默认列名是index)。要直接丢弃原索引列,只需要给reset_index()加上drop=True参数,之后再调整新索引从1开始就行:

修改后的代码片段:

# 生成sway数据集
sway = df[df['sway_diff'].abs() >= 3]
sway = sway.reset_index(drop=True)  # 添加drop=True,丢弃原索引列
sway.index += 1  # 让新索引从1开始计数

也可以合并成一行代码:

sway = df[df['sway_diff'].abs() >= 3].reset_index(drop=True)
sway.index = sway.index + 1

这样处理后,sway就不会保留原df的索引列,同时新索引会从1开始连续编号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:40:14