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

如何用Python/Pandas删除Excel中不匹配指定编号的行?

解决Pandas删除Excel中不匹配指定编号行的问题

你的问题出在精确匹配的逻辑错误:原代码用df.NUMBER != '200001.'判断,但你的目标行编号是200001AAA、200001BBB这类,和'200001.'完全不相等,所以筛选逻辑完全不对。

根据你的需求,分两种场景给出解决方案:

场景1:保留所有以指定前缀开头的行(比如所有200001开头的编号)

如果只要保留编号以200001开头的行,用字符串前缀匹配最直接:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('your_file.xlsx')

# 筛选出Number列以'200001'开头的行,直接覆盖原DataFrame即可
df = df[df['Number'].str.startswith('200001')]

# 保存过滤后的结果到新Excel(index=False避免生成多余的索引列)
df.to_excel('filtered_result.xlsx', index=False)

场景2:保留指定的几个精确编号行(比如仅200001AAA、200001BBB)

如果明确知道要保留的具体编号值,用isin()方法做精确匹配:

import pandas as pd

df = pd.read_excel('your_file.xlsx')

# 定义需要保留的编号列表
target_numbers = ['200001AAA', '200001BBB']

# 筛选出Number在目标列表中的行
df = df[df['Number'].isin(target_numbers)]

# 保存结果
df.to_excel('filtered_result.xlsx', index=False)

原代码问题解析

你写的df.drop(df[df.NUMBER != '200001.'].index)是试图删除所有不等于'200001.'的行,但你的数据里没有任何一行的Number是'200001.',所以要么所有行都被删掉,要么完全没变化,这就是达不到预期的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:54:21