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

如何在Pandas中删除某列第三个字符为W的行?

删除DataFrame中ID列第三个字符为'W'的行

原始DataFrame

IDJanFebMar
20WAST225
20S22001
20W1ST225
200122001

期望输出

IDJanFebMar
20S22001
200122001

问题分析

你之前写的df[df.ID[2] != 'W']只选中第二行,是因为df.ID[2]取的是ID列第三行的单个元素(Python索引从0开始),而非对每行的ID字符串取第三个字符,这种写法仅能判断单一行的ID,自然得不到正确结果。

高效解决方案

针对大型DataFrame,必须用矢量化操作替代遍历,既高效又简洁:

方法1:生成筛选后的新DataFrame

df_filtered = df[df['ID'].str[2] != 'W']

df['ID'].str[2]会对ID列的每个字符串取索引为2的字符(即第三个字符),返回一个与原DataFrame行数匹配的布尔Series,用它做索引即可筛选出所有符合条件的行。

方法2:原地删除目标行

如果无需保留原DataFrame,可直接在原数据上删除:

df.drop(df[df['ID'].str[2] == 'W'].index, inplace=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:47:58