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

无需创建新列,基于Pandas字符串列按数值筛选

解决方案

要在不修改原DataFrame的前提下,按Category列后两位的数值筛选子集,你可以用以下两种高效的向量化方法:

方法1:使用pd.to_numeric转换

import pandas as pd

df_subset = df[pd.to_numeric(df['Category'].str[2:]) <= 3]

方法2:使用.astype(int)转换

df_subset = df[df['Category'].str[2:].astype(int) <= 3]

为什么你的第二种写法不生效?

int(df['Category'].str[2:4])这种写法错误,因为df['Category'].str[2:4]返回的是Pandas Series对象,无法直接用Python内置的int()批量转换,必须用Pandas提供的向量化方法处理整个Series。

效果说明

两种方法都会生成布尔索引数组,用来筛选原DataFrame中符合条件的行,完全不会修改原DataFrame,最终得到的df_subset会包含AB00、CD01、EF02、GH03这些行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:00:17