删除pandas DataFrame行后,如何通过原索引定位目标行?
解决DataFrame删行后用原始索引定位行的问题
方法1:提前把原始索引存成普通列
在删行操作前,先给DataFrame加一列存原始索引,这样不管后续索引怎么变,都能靠这个列精准找到目标行:
# 假设你的DataFrame是df df['original_index'] = df.index # 执行删行操作,比如删除索引0和2的行 df = df.drop([0, 2]) # 找原索引1的行,直接筛选这个新列 target_row = df[df['original_index'] == 1]
方法2:删行后保留原始索引不重置
默认情况下,drop方法删除行后不会自动重置索引,索引会保留原始的数值(比如删了0、2,剩下的索引还是1、3),这时直接用loc就能定位原始索引的行:
# 删除指定索引的行,不重置索引 df = df.drop([0, 2]) # 直接用原索引1定位 target_row = df.loc[1]
提示:如果之后不小心用了
reset_index(drop=True)把索引重置了,那原始索引就丢了,这种情况只能回到删行前的数据源重新处理。
内容的提问来源于stack exchange,提问作者Galaluddin Owais
相关产品推荐
相关产品推荐

